无法通过Excel中的ADODB连接运行Access查询

时间:2019-04-22 15:22:03

标签: excel vba ms-access ado

我正在尝试将访问查询的结果粘贴到Excel中的工作表中。

当我运行以下代码时,什么都没有发生。没有错误或警告,仅粘贴了任何内容。但是,当我运行相同的代码,但使用表而不是查询名称时,它将成功提取表。但是,当我用查询名称替换它时,它什么也不返回。

过去,我做过同样的事情,但是我没有调用查询名称,而是将SQL查询作为字符串存储在宏中,并通过引用该字符串来调用查询。我尝试过,但在这种情况下不起作用。

我试图提取的查询将其他查询作为表引用,我认为这就是为什么我遇到问题的原因。就像我说的那样,我以前曾多次使用此代码从Access中提取数据,但只有在仅引用表而不是查询时才能这样做。

Dim Con As ADODB.Connection
Set Con = New ADODB.Connection

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

Dim iCols As Integer

Set Con = New ADODB.Connection

With Con
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open AccessDBPath
End With

Set rs = New ADODB.Recordset
rs.Open "query1", Con

Sheets("NAHV").Range("E2").CopyFromRecordset rs

我尝试用Execute命令替换rs.Open行:

Set rs = Con.Execute("query1")

这也不起作用。

我也尝试过将整个区块替换为

Dim cn As Object, rs As Object
Dim myFile As String: myFile = AccessDBPath
Set cn = CreateObject("ADODB.Connection")
With cn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=" & myFile & ";"
    .Open
End With
Set rs = cn.Execute("query1")

Sheets("NAHV").Range("E2").CopyFromRecordset rs
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing

这也不起作用。

0 个答案:

没有答案