【发布时间】:2018-09-13 05:10:59
【问题描述】:
我是一个全新的访问和努力了解如何将访问表/列/行格式与 VBA 中的 Excel 导出相关联。
我创建了一个名为 Data 的访问表和三列 Food、Drinks、Color。
我想从我的 excel 电子表格中将这些单元格范围导出到 Access:
Foodrng = Workbooks(xlFile).Sheets("ToBeExported").Range("D6")
Drinksrng = Workbooks(xlFile).Sheets("ToBeExported").Range("E6")
Colorrng= Workbooks(xlFile).Sheets("ToBeExported").Range("B12:B21")
网上的一切都说我应该使用它,因为我的版本:
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;"
我想使用INSERT TO 格式来写入我的数据库,因为我将扩展数据库列相当多,我觉得这是跟踪哪个方向的最简单方法。
strSql = "INSERT INTO Data (Food, Drinks, Color) VALUES (Foodrng, Drinksrng,Colorrng)"
执行时总是遇到语法错误:
Set rs = cn.Execute(strSql)
使用上述方法导出到Access数据库的正确方法是什么?任何/所有信息都会非常有用,因为我是 Access 的新手
我的完整代码:
Foodrng = Workbooks(xlFile).Sheets("ToBeExported").Range("D6")
Drinksrng = Workbooks(xlFile).Sheets("ToBeExported").Range("E6")
Colorrng= Workbooks(xlFile).Sheets("ToBeExported").Range("B12:B21")
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source= C:\Users\User1\MyDBase.accdb"
cn.Open strConnection
strSql = "INSERT INTO Data (Food, Drinks, Color) VALUES (Foodrng, Drinksrng,Colorrng)"
Set rs = cn.Execute(strSql)
'MsgBox rs.Fields(0) & " rows in MyTable"
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
【问题讨论】:
-
我对 SQL 不太擅长,但也许您需要传递变量的引用而不是文字字符串?
strSql = "INSERT INTO Data (Food, Drinks, Color) VALUES (" & Foodrng & ", " & Drinksrng & ", " & Colorrng & ")"(如果不行,你也可以试试Foodrng.Address)
标签: excel vba ms-access export