我正在尝试将访问查询的结果粘贴到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
这也不起作用。