从 DoCmd.OpenReport 将参数传递给 Access 2010 报告

Posted

技术标签:

【中文标题】从 DoCmd.OpenReport 将参数传递给 Access 2010 报告【英文标题】:Pass parameters to Access 2010 report from DoCmd.OpenReport 【发布时间】:2013-02-18 13:53:48 【问题描述】:

我有一个表单,它有 2 个文本框和 1 个按钮。文本框是日期从和日期到。单击该按钮时,会运行一些 VBA 代码,该代码会循环查询结果 (qryInvoicesBetweenDates),获取发票 ID 并生成发票的打印预览。问题是,我无法弄清楚如何在循环中将当前 ID 传递给报告。我只需要给 DoCmd.OpenReport 他 invoice_number 变量。

VBA 代码:

Dim qdf As QueryDef
Set qdf = CurrentDb.QueryDefs("qryInvoicesBetweenDates")
Dim rs As DAO.Recordset

qdf.Parameters(0) = tbFrom.Value
qdf.Parameters(1) = tbTo.Value

Set rs = qdf.OpenRecordset()
Do Until rs.EOF = True
        ' Set the invoice number to the current row
        'invoice_number = rs.N
    invoice_number = rs.Fields(0).Value


    ' Preview the invoice
    Dim stDocName As String
    stDocName = "InvoiceForWork"
    DoCmd.OpenReport stDocName, acPreview
Loop

非常感谢。

【问题讨论】:

【参考方案1】:

您可以在 OpenReport 中使用 where 语句:

DoCmd.OpenReport stDocName, acPreview,,"ID=" & Rs!invoice_number

其中 ID 是报告中对应于Rs!invoice_number 的字段的名称。上面的例子是数字数据类型,文本数据类型需要引号。

【讨论】:

以上是关于从 DoCmd.OpenReport 将参数传递给 Access 2010 报告的主要内容,如果未能解决你的问题,请参考以下文章

从 DoCmd OpenReport 打印报表时触发 Microsoft Access 中的事件

MS.Access - 在 DoCmd.OpenReport [where 条件] 中使用 2 个过滤条件从表单打印报表

DoCmd.OpenReport 上的错误

根据组合框输入打开报表

从后面的代码将参数传递给 URL

如何从反应原生桥将参数传递给swift类