我有一个Excel工作表,其Sheet1列A列有大约1000个项目编号。目前,我导入工作表Sheet1到一个名为ItemNumbers
Access表和运行以下查询:Excel VBA - 如何查询使用列值作为参数的Access数据库?
SELECT MyTable.ItemNumber, MyTable.ItemName, MyTable.ItemPrice
FROM [ItemNumbers] INNER JOIN MyTable ON [ItemNumbers].ItemNumber = MyTable.ItemNumber
ORDER BY MyTable.ItemNumber;
然后我复制/粘贴输出到Sheet2。
如何在Excel中的VBA中执行此操作并将结果放入记录集中?我可以弄清楚如何遍历记录集并将结果放入Sheet2中。我只是不确定在运行查询的代码。
到目前为止我有以下内容。它只是需要修改,以使用Sheet1列A中的值。
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\MyDatabase.accdb"
strSql = "SELECT MyTable.ItemNumber, MyTable.ItemName, MyTable.ItemPrice " & _
"FROM MyTable " & _
"WHERE WHERE (((MyTable.ItemNumber)= ??? IS IN Sheet1!A:A ??? )) " & _
"ORDER BY MyTable.ItemNumber;"
cn.Open strConnection
Set rs = cn.Execute(strSql)
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
谢谢!
Jeff,你为什么要删除[在尝试INSERT INTO Access DB时出现自动化错误](http://stackoverflow.com/questions/19454094/excel-vba-automation-error-when-trying-insert-into-访问DB)? – HansUp
OOPS!我认为这是我正在做的其他事情的重复,但我忘记了这是今天早上我正在做的一些事情。我不小心将它删除了! –