有什么方法可以根据报告中的特定条件/字段在MS Access中将报告导出为PDF?
我已经在MS Access中创建了一份生产力报告。除了将50页导出为1个PDF之外,还有没有一种方法可以根据经理的姓名进行导出?经理姓名字段包含在实际报告中。
您可以采用这个想法并加以实践。将此插入模块
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并传递名称时,该子项会将报告输出为PDF。由于报告附带了代码,因此在运行OutputTo时,报告将检测是否启用了过滤器,如果已启用,则应用它。然后OutputTo完成其工作并输出PDF。
例如,要为经理John Smith运行此程序,可以从调试窗口运行此程序:
ExportFilteredManagerReportToPDF "John Smith"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句