sql-server - 配置 Access 报表以使用 SQL Server 存储过程作为其记录源

标签 sql-server vba ms-access stored-procedures ms-access-2010

我正在尝试使用 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/

相关文章:

ms-access - Access 为子报表的记录编号的运行总和问题

sql-server - 如何更改 Microsoft SQL Server Management Studio 中当前选项卡的连接

excel - 偏移周年纪念日

java - 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配。 JAVA

VBA 使用列表过滤和复制行

vba - 检查 VBA 中的数据类型

ms-access - 在Access中使用VBA一次性写入大量数据

sql-server - 错误消息 : Incorrect Syntax near'. '.在 SQL Server 中

sql-server - 如何防止多线程应用程序读取同一条 Sql Server 记录两次

SQL 使用 SSL 加密单个连接