Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何输出带条件的访问报告_Ms Access_Vba - Fatal编程技术网

Ms access 如何输出带条件的访问报告

Ms access 如何输出带条件的访问报告,ms-access,vba,Ms Access,Vba,再见,亲爱的 我有一个窗体要运行带有条件的报表当我运行窗体时,筛选器(条件)对报表正常工作 但是当我创建PDF(DoCmd.OutputTo)时,PDF返回所有值(过滤器或条件不起作用) 这是我的密码  fSetAccessWindow (2) DoCmd.OpenReport "Report1", acViewReport, _ "SELECT * FROM main WHERE ID LIKE '" & Nz(Me.cmrtxt, "*") &

再见,亲爱的

我有一个窗体要运行带有条件的报表当我运行窗体时,筛选器(条件)对报表正常工作

但是当我创建PDF(DoCmd.OutputTo)时,PDF返回所有值(过滤器或条件不起作用)

这是我的密码



 fSetAccessWindow (2)
DoCmd.OpenReport "Report1", acViewReport, _
                 "SELECT * FROM main WHERE ID LIKE '" & Nz(Me.cmrtxt, "*") & "' AND place_of_discharge_ar LIKE '" & Nz(Me.dischargecombo, "*") & "' AND border LIKE '" & Nz(Me.bordercombo, "*") & "'  AND a_date Between " & _
                 Format(Nz(Me.statrdatetxt, "01/01/1900"), "\#mm\/dd\/yyyy\#") & " And " & _
                 Format(Nz(Me.enddatetxt, "01/01/2900"), "\#mm\/dd\/yyyy\#"), , acDialog
                Me.Visible = True

                DoCmd.OutputTo acOutputReport, "Report1", "", "", False, "", 0

                 fSetAccessWindow (SW_HIDE)
谁能帮我修一下吗


无论何时打开报告,它都会根据查询过滤数据,并根据需要显示结果。问题是,要执行
Docmd.OutputTo
,首先必须关闭报告,当报告关闭时,过滤效果将被清除,输出pdf将包含所有记录


解决方案是,如果您不想预览报告,则可以使用
acHidden
而不是
acDialog
,否则,如果您确实希望预览报告,然后希望导出为pdf,则在表单上放置一个按钮并对该按钮进行编码,以将报告导出为pdf。

我将根据查询生成报告(如果不是这样的话)并且由于您知道运行时报表所需的SQL,您可以完全替换QueryDef中的SQL(使用适当的WHERE筛选器)并只输出报表。您不需要事先打开。省略OpenReport调用,只需执行以下操作:

CurrentDB.QueryDefs("qryMyReportBase").SQL = "SELECT * FROM main WHERE ID LIKE '" & Nz(Me.cmrtxt, "*") & "' AND place_of_discharge_ar LIKE '" & Nz(Me.dischargecombo, "*") & "' AND border LIKE '" & Nz(Me.bordercombo, "*") & "'  AND a_date Between " & _
                                             Format(Nz(Me.statrdatetxt, "01/01/1900"), "\#mm\/dd\/yyyy\#") & " And " & _
                                             Format(Nz(Me.enddatetxt, "01/01/2900"), "\#mm\/dd\/yyyy\#")

DoCmd.OutputTo acOutputReport, "Report1", acFormatPDF, "C:\MySavePath\Report1.pdf", False
显然,“qryMyReportBase”应该是报表的源查询,“C:\MySavePath\”应该是您的保存路径


另外,我在OutputTo中没有看到您将类型指定为PDF的任何地方。因为这是您上面提到的,所以我在中添加了它。

是的,我可以修复它。但是我已经为您提供了一个修复程序。您可以尝试一下。如果我删除,它会给我另一个错误