首页 > 解决方案 > 将存储过程分配给 Microsoft Access 中的 report.recordset

问题描述

我听说你只能这样做是 adp,我直接连接到 SQL Server,并且想将存储过程分配给记录,我得到只能在 adp 文件中完成的错误?

我没有链接到 SQL Server,我使用 ODBC 驱动程序直接连接到它。

有什么办法可以将此存储过程分配给报告?

谢谢..

标签: ms-accessreportadp

解决方案


您所要做的就是在 Access 中创建一个查询,但将其标记(更改)为一个 pass-thougthh 查询。

所以,pt查询可以是

Exec MyStoredProcedure

保存查询。现在只需将此查询用作报告的来源。你真的不需要在这里写任何代码。当然,如果您需要传递一个值或某种参数?

好吧,那么您可以使用以下代码:

假设存储过程返回给定发票编号的数据。

因此,您的代码将如下所示:

dim strInvoiceNumber   as string
strInvoiceNumber = InputBox("Enter invoice number")

currentdb.QueryDefs("MyPass").sql = "EXEC StorProc " & strInvoiceNumber

' code here follows to open report
 docmd.OpenReport "MyInoice",acViewPreview

因此,您可以创建一个直通查询,并在查询中键入任何将运行/调用存储过程的 exec 或命令。如前所述,如果没有参数,那么您根本不需要编写任何代码 - 只需创建传递查询,并将其用作报告的源。


推荐阅读