我正在尝试使用 MS SQL Server 存储过程的结果在 MS Access 2010 中创建报告。在我的 VBA 代码中,我尝试:
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("[MyTable]").Connect
qdf.SQL = "exec spMyProc @ID = " & "1"
qdf.ReturnsRecords = True
Set rs = qdf.OpenRecordset(dbOpenSnapshot)
Set Me.Recordset = rs
但是它会抛出一个错误:
运行时错误“32585”
此功能仅在 ADP 中可用。
我做错了什么或如何解决?
最佳答案
在执行存储过程的 Access 中创建一个保存的传递查询。在此示例中,我将调用命名查询 [myPassThroughQuery]。
编辑您的报告以使 myPassThroughQuery
成为报告的 记录源
。
现在您可以在打开报告之前调整 SP 调用:
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.QueryDefs("myPassThroughQuery")
qdf.SQL = "EXEC spMyProc @ID = " & "1"
Set qdf = Nothing
Set cdb = Nothing
DoCmd.OpenReport "mySpReport", acViewPreview
关于sql-server - 配置 Access 报表以使用 SQL Server 存储过程作为其记录源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262266/