ExcelVBAを使用し、accessのテーブルにレコード追加
ExcelVBAを使用し、accessのテーブルを更新したい。
Excelのボタンをクリックすることで、更新できる仕様にしたいです。
INSERT INTO構文はいくらでもネットに出てくるのですが、Excel側の様式が決まっており、「各所のセルから様々な型」でテーブルに追加しなければなりません。
初心者ですが、力をお貸しいただきたいところです。
できれば急ぎで解決したいところなのです。。
何卒、ご教示お願いいたします。
発生している問題・エラー
実行時エラー'エラー13':
型が一致しません。
以下、コードです。
ExcelVBA
Sub ボタン3_Click()
Dim dbPath As String
dbPath = "C:\Users\hayab\Desktop\てすと!!\テスト.accdb"
' データベース接続を開始
Dim conn As Object
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath
' SQLクエリを作成
Dim strSQL As String
strSQL = "INSERT INTO T_テーブル (文字型1, 文字型2, 数値型, カレンダー, ボックス) VALUES (" & _
"'" & Sheets("Sheet1").Cells(2, 5).Value & "', " & _
"'" & Sheets("Sheet1").Cells(2, 6).Value & "', " & _
Replace(Sheets("Sheet1").Cells(2, 8).Value, ",", "") & ", " & _
"#" & Format(CDate(Sheets("Sheet1").Cells(10, 2).Value), "yyyy/mm/dd") & "#, " & _
"'" & IIf(Sheets("Sheet1").Shapes("チェック 4").ControlFormat.Value = xlOn, "有", "無") & "')"
' SQLクエリを実行
conn.Execute strSQL
' データベース接続をクローズ
conn.Close
Set conn = Nothing
End Sub
以下、accessの「T_テーブル」のフィールドです。
以下、Excelsheet1のスクショです。
Microsoftのドキュメントを確認し、試してみましたが、いずれもコード内に文字型の文字を記載して、accessのテーブルに追加する基礎的なものしかなく、「Cells、Range、カレンダー(2023/10/1)」などを指定してのテーブル追加の記事がなく、困っています。。
何卒お力をお貸しください。
よろしくお願いいたします。