Ms access 导出Excel范围以访问表VBA
我想在Excel电子表格上有一个按钮,并将数据复制到Access表中。 范围是同一工作簿中另一工作表中的自动填充字段 我尝试了一些代码来实现这一点,但我要么得到一个错误1004:应用程序定义的或对象定义的错误,要么没有错误,但Access DB中没有复制数据 我的代码复制到下面Ms access 导出Excel范围以访问表VBA,ms-access,Ms Access,我想在Excel电子表格上有一个按钮,并将数据复制到Access表中。 范围是同一工作簿中另一工作表中的自动填充字段 我尝试了一些代码来实现这一点,但我要么得到一个错误1004:应用程序定义的或对象定义的错误,要么没有错误,但Access DB中没有复制数据 我的代码复制到下面 Sub Export_Data() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim dbPath Dim x As
Sub Export_Data()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim dbPath
Dim x As Long, i As Long
dbPath = "H:\RFD\RequestForData.accdb"
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath
Set rst = New ADODB.Recordset 'assign memory to the recordset
rst.Open Source:="tblRequests", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Options:=adCmdTable
rst.AddNew
For i = 1 To 13
rst(Cells(1, i).Value) = Cells(x, i).Value
Next i
rst.Update
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
MsgBox " The data has been successfully sent to the access database"
Set rst = Nothing
Set cnn = Nothing
End Sub
看看你的子程序,我发现有两件事会让它无法工作:
- rst(单元格(1,i).Value)=单元格(x,i).Value您可以从Access而不是Excel导入数据吗?如果是这样的话,
可以做你想做的事,我想x是什么?它没有在任何地方初始化。是的,x没有初始化或递增。你想填充13个字段,只填充一条记录吗?是的!一条记录从第7行开始,共有24个字段。您好,谢谢您的回答。我已经试过你的代码了。我可以看到一个消息框,上面写着“数据已成功发送到access数据库”,但当我返回数据库时,没有任何记录。另外,由于excel电子表格中的记录从第7行开始,因此我将x设置为7@我叫乔安妮。我复制了一个类似的例子(只有三个字段),它已经起作用了。这些行将添加到Access数据库中。我会进行一些控制测试,例如添加一个计数器,记录例程处理了多少行,并添加一个显示该数字的消息框,或者检查主键字段是否已填充。。。我会测试那种东西。。。DoCmd.TransferSpreadsheet
For x = 1 TO lastRow ' Last row has to be calculated somehow rst.AddNew For i = 1 To 13 rst(Cells(1, i).Value) = Cells(x, i).Value Next i rst.Update Next x