Excel VBAを初めて使用しており、ExcelシートからAccessデータベースを更新する予定です。私は、コードを実行すると、私はエラーを取得しています:ExcelシートからAccessデータベースを更新できません
と競合しています実行時エラー「3001」:引数は、間違ったタイプのものであり、許容範囲である、または1つ別の
私は問題がmyRecordset.Open
コマンドであると思いますが、私は完全に固執しており、それを修正する方法を理解することはできません。
アドバイスをいただければ幸いです。
Private Sub CommandButton1_Click()
Update MS Access database
Dim oConn As Object
Dim myRecordset As Object
Dim sConn As String
sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents\Standard Form for Rate Requests\Database41.accdb"
Set oConn = CreateObject("ADODB.Connection")
oConn.Open sConn
Set myRecordset = CreateObject("ADODB.RecordSet")
myRecordset.Open "MainTable", oConn, adOpenForwardOnly, adLockPessimistic, adCmdTable
With myRecordset
.AddNew
.Fields("ID").value = Worksheets("Sheet1").Range("A5").value
.Fields("Order Number").value = Worksheets("Sheet1").Range("A5").value
.Fields("Requester").value = Worksheets("Sheet1").Range("B2").value
.Fields("Request Type").value = Worksheets("Sheet1").Range("B5").value
.Fields("Transport Mode").value = Worksheets("Sheet1").Range("C5").value
.Fields("Origin").value = Worksheets("Sheet1").Range("B16").value
.Fields("Destination").value = Worksheets("Sheet1").Range("I16").value
.Fields("Collection Date").value = Worksheets("Sheet1").Range("D5").value
.Fields("Delivery Date").value = Worksheets("Sheet1").Range("E5").value
.Fields("Note").value = Worksheets("Sheet1").Range("J12").value
.Update
.Close
End With
Set myRecordset = Nothing
Set oConn = Nothing
End Sub