【エクセル_VBA】 エクセルVBAでAceessのテーブルにデータを書き込みたいのですが 実行すると エクセルが再立ち上げされて データも書かれておりません。 何か設定で問題はありますか?

ベストアンサー

0

ThanksImg質問者からのお礼コメント

色々ありがとうございます。

お礼日時:7/18 14:20

その他の回答(2件)

0

adoRS.Open "test_tbl", adoCON, adOpenDynamic, adLockPessimistic の箇所でエラーが出ています。"test_tbl"をsql文に変えたら問題なく追加されました。テーブル名、DB名も変えたのでご注意ください。 Sub registerMenu() Dim registerSht As Worksheet Set registerSht = ThisWorkbook.Worksheets("Sheet1") Dim strSQL As String Dim adoCON As New ADODB.Connection Dim dbPath As String dbPath = ActiveWorkbook.Path & "\sample.accdb" adoCON.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & dbPath & ";" adoCON.Open Dim adoRS As New ADODB.Recordset 'DB接続用SQL strSQL = "SELECT T_shain.* FROM T_shain " strSQL = strSQL & "WHERE ID = " & CLng(Cells(3, 1).Value) & " ;" 'カーソルをクライアント側に設定 adoRS.CursorLocation = adUseClient adoRS.Open strSQL, adoCON, adOpenDynamic, adLockPessimistic adoRS.AddNew adoRS!社員番号 = "140210" adoRS!商品単価 = 210 adoRS.Update adoRS.Close adoCON.Close Set registerSht = Nothing Set adoCON = Nothing Set adoRS = Nothing MsgBox "Accessに書き込みました" End Sub

画像

返信ありがとうございます。修正して実行してみました。 Dim adoRS As New ADODB.Recordset 'DB接続用SQL strSQL = "SELECT * FROM test_tbl " adoRS.CursorLocation = adUseClient adoRS.Open strSQL, adoCON, adOpenDynamic, adLockPessimistic 下記のステップ実行でエクセルが再起動されてしまいます。 adoCON.Open ※エクセルとアクセスのバージョンとかの問題でしょうか? エクセルがオフィス2013 Accessが2016 です。 参照設定でMicrosoft ActiveX data~ 6.0 にチェックしてます

0

ステップ実行等で自力でデバッグ出来ないのでしたら、下記を参考にして1から作り直した方が早いかも? Excelを入力画面にしてAccessデータベースを参照・更新・削除する際の便利テクニック https://www.atmarkit.co.jp/ait/articles/1512/10/news024.html