根据字段

时间:2018-01-29 02:18:24

标签: ms-access pdf report

我有一个非常大的访问报告,我想基于名为Security Contact的字段将其作为单独的PDF(存储在C驱动器上的同一文件夹中)存档。我想根据安全联系人的姓名命名每个PDF。有任何想法吗?我正在使用Access 2013.提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以通过DoCmd.OutputTo方法导出为PDF。

DoCmd.OutputTo acOutputReport, "MyReport", acFormatPDF, "C:\MyReport.pdf"

但是,此方法不允许传递过滤器,因此要单独输出每个安全联系人,您需要让报告获取正确的安全联系人并过滤自身。有多种方法可以以编程方式执行此操作。选项包括将值存储在表中并在报表的查询中引用该表。另一种方法是在报告的查询中引用一个开放表单的字段(可能是一个隐藏的字段)。

例如,您的报告的查询可能是:

SELECT * FROM Data WHERE SecurityContact=[Forms]![frmRunSecConReport]![txtContact]

这会导致报告基于特定值SecurityContact的记录。

步骤如下:

  • 遍历可能的安全联系人值(通过打开并移动包含其不同值的相应记录集)。
  • 对于安全联系人的每个值:
    • 设置引用字段(在表格中或如上所述的表单上),以便运行报告仅包含该安全联系人,
    • 使用根据安全联系人的值生成的文件名调用OutputTo

请注意,如果您想避免询问是否要覆盖现有文件的警告消息框,则需要先删除现有文件(请参阅VBA中的Kill语句。)

相关问题