前提・実現したいこと
Accessのフォームにあるボタンを押下する
→リンクテーブル内にあるレコードを全件削除
発生している問題・エラーメッセージ
下記のソースコードで実行すると、
"実行時エラー'3086' 指定されたテーブルから削除できませんでした"
と表示され、SQL文のところでデバックが止まります。
エラーで調べてみたのですが、調べ方が悪く解決できておりません。
もし原因・解決方法をご存じでしたら、何卒ご教示お願いいたします。
該当のソースコード
FormAのボタンをクリック
→LinkTableのレコードが全件削除される
→formBが開く
といった流れにしています。
Private Sub OpenFormB_Click() Dim Con As New ADODB.Connection Dim strConnectionStr As String strConnectionStr = "Provider=SQLOLEDB; " & _ "Data Source=(サーバー名); " & _ "Initial Catalog=(DB名); " & _ "USER ID= (ユーザー名); " & _ "PASSWORD= (パスワード); " With Con .ConnectionString = strConnectionStr .Open Dim DB As Database Set DB = CurrentDb db.Execute ("DELETE FROM LinkTable;") Set DB = Nothing .Close End With Set Con = Nothing DoCmd.OpenForm "FormB", acNormal, "", "", , acNormal End Sub
PrimaryKey追加後
以下のコードで動作確認できました
Private Sub OpenFormB_Click() Dim Con As Connection Dim RST As New ADODB.Recordset Set Con = CurrentProject.Connection Set RST = New ADODB.Recordset With RST .Open "LinkTable", Con, , adLockOptimistic Do Until .EOF .Delete .MoveNext Loop RST.Close Con.Close End With Set RST = Nothing Set Con = Nothing DoCmd.OpenForm "FormB", acNormal, "", "", , acNormal End Sub
回答2件
あなたの回答
tips
プレビュー