【问题标题】:Export MS Access Report to PDF based on condition根据条件将 MS Access 报告导出为 PDF
【发布时间】:2014-08-18 15:32:02
【问题描述】:

有没有什么方法可以根据报表上的特定条件/字段将 MS Access 中的报表导出为 PDF?

我在 MS Access 中创建了一份生产力报告。不是将 50 页导出为 1 个 PDF,有没有办法根据经理的姓名导出?经理姓名字段包含在实际报告中。

【问题讨论】:

  • 报告是否每次运行仅加载 1 个经理?报告的事件处理程序可能很棘手,所以我不确定是否使用实际报告。如果我们可以采取措施事先缩小经理的名字,我认为那将是最简单的。 (也许是查询?)
  • @overmind 我确实将表格上的所有数据放在一个表中(包括经理姓名)。
  • 是 1 位经理的报告吗?还是全部?

标签: ms-access pdf export report criteria


【解决方案1】:

您可以接受这个想法并尝试一下。将其插入到模块中

Option Explicit

Dim g_ManagerReportFilterEnabled As Boolean
Dim g_ManagerReportFilter As String

Public Function IsManagerReportFilterEnabled() As Boolean
    IsManagerReportFilterEnabled = g_ManagerReportFilterEnabled
End Function

Public Function GetManagerReportFilter() As String
    GetManagerReportFilter = g_ManagerReportFilter
End Function

Public Sub ExportFilteredManagerReportToPDF(strManagerName As String)
On Error GoTo ExportFilteredManagerReportToPDF_ErrorHandler

    g_ManagerReportFilterEnabled = True
    g_ManagerReportFilter = "[MyManagerNameField] = " & Chr(34) & strManagerName & Chr(34)
    DoCmd.OutputTo acOutputReport, "MyReportName", acFormatPDF, "MyPath:\MyFileName.PDF", False

    GoTo ExitMe

ExportFilteredManagerReportToPDF_ErrorHandler:
    Debug.Print err.Number & ": " & err.Description
ExitMe:
    g_ManagerReportFilterEnabled = False
    Exit Sub

End Sub

并查看您需要替换的变量。并将其放入您的报告的 Report_Open 中:

Private Sub Report_Open(Cancel As Integer)

    If IsManagerReportFilterEnabled = True Then
        Me.Filter = GetManagerReportFilter
        Me.FilterOn = True
    End If

End Sub

所以这段代码试图解决的问题是我们想使用 DoCmd.OutputTo 来输出我们的 PDF,但它没有使用 Filter 参数。所以我们通过设置两个全局变量(我知道......)来解决这个问题,这让我们知道我们是否应该使用 Manager 过滤器以及该过滤器是什么。当我们运行 ExportFilteredManagerReportToPDF 并传递一个名称时,sub 会将报告输出为 PDF。由于报表附有代码,当 OutputTo 运行时,报表会检测是否启用了过滤器,如果是,则应用它。然后 OutputTo 完成它的工作并输出 PDF。

例如,要为经理 John Smith 运行此程序,您可以从调试窗口运行此程序:

 ExportFilteredManagerReportToPDF "John Smith"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多