通过VBA中的Excel查询从Access执行查询

tox*_*e20 2 excel vba adodb ms-access-2007 excel-vba

Access已保存使用名为"myQuery"的查询构建器设计的查询.数据库通过ODBC连接连接到系统.宏全部启用.

Excel已建立ADODB连接以通过连接到数据库

Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
With con
 .Provider = "Microsoft.ACE.OLEDB.12.0"
 .Open "MyDatabase.accdb"
End With
Run Code Online (Sandbox Code Playgroud)

通常你会继续编写你的SQL,这完全没问题,然后就像做一样

Dim sqlQuery As String
sqlQuery = "SELECT * FROM myTable"
Set rs = New ADODB.Recordset
rs.Open sqlQuery, con, ...
Run Code Online (Sandbox Code Playgroud)

但我想访问我在访问数据库中保存的查询.那么如何在刚刚连接的数据库中调用已保存的查询.

已经尝试过

  1. con.Execute("EXEC myQuery")但是那个人告诉我它无法找到myQuery.
  2. rs.打开"myQuery",con但是那个是无效的并且需要SELECT/etc语句

Bmo*_*Bmo 6

我认为你可以像对待存储过程一样对待它.

如果我们在之前开始 Dim sqlQuery As String

 Dim cmd as new ADODB.Command
 cmd.CommandType = adCmdStoredProc
 cmd.CommandText = "myQuery"
 cmd.ActiveConnection = con

 Set rs = cmd.Execute()
Run Code Online (Sandbox Code Playgroud)

然后在此之后启动记录集工作.