Sub ExportDataToAccess(arrFileds As Variant, datas As Variant, sheetName As String)
Dim conString$, sqlString$
Dim cnn, rst
Set cnn = CreateObject("ADODB.Connection") ' 创建连接对象
Set rst = CreateObject("ADODB.Recordset") ' 创建记录集对象
conString = "provider=Microsoft.ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path _
& "\test.accdb;"
cnn.Open conString ' 连接Access数据库
rst.Open "select * from " & sheetName & " where 1=2", cnn, adOpenDynamic, _
adLockOptimistic
rst.AddNew arrFileds, datas '数组插入到Access
cnn.Close ' 关闭连接对象
End Sub
参数:arrFileds
(表示要插入数据的字段的数组),datas
(表示要插入的实际数据的数组),以及sheetName
(access工作表的名称)。
常见异常:代码中出现了"参数类型不正确"的异常。这个异常通常发生在尝试将不正确的数据类型传递给函数或方法时。
在您提供的代码中,rst.Open "select * from " & sheetName & " where 1=2", cnn, adOpenDynamic, adLockOptimistic
行出现了异常。adOpenDynamic
的值为空值,adLockOptimistic
的值为空值。
解决方法:打开VB编辑器,点击“工具”、点击引用,勾上Microsoft ActiveX Data Objects 6.0
请注意,如果Excel表格的结构与Access表的结构不匹配,或者存在数据格式问题,可能会出现导入错误。在这种情况下,您需要手动修复Excel数据或调整Access表结构,然后重新尝试导入过程。