我是Excel VBA的新用戶,正在根據以下代碼從Excel工作表中更新Access數據庫。當我運行的代碼我得到一個錯誤:無法從Excel工作表中更新Access數據庫
運行時錯誤「3001」:參數的錯誤類型,是在可接受的範圍內,或有衝突彼此
我認爲這個問題是與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