如何以格式化 ID 值作为报告名称将 MS Access 报告导出为 PDF?

Posted

技术标签:

【中文标题】如何以格式化 ID 值作为报告名称将 MS Access 报告导出为 PDF?【英文标题】:How do I export a MS Access report to PDF with a formatted ID value as the report name? 【发布时间】:2013-03-27 04:22:37 【问题描述】:

我正在使用 Access 2007。

我创建了一个按钮,允许我将当前发票输出为 .pdf,我希望它以“发票编号加客户名称”命名,我已经接近但还没有完全实现。这是我目前拥有的代码,它工作正常:

Private Sub Create_Document_Click()

    DoCmd.OutputTo acOutputReport, "Invoices", acFormatPDF, [Invoice_ID] & "_" & [Client_ID] & ".pdf"

End Sub

这给了我一个名为“1_1.pdf”的报告,我希望它被称为“1007735001_XYZCompany.pdf”。

在我的 Invoices 表中,我已将 Invoice_ID 字段格式化为“1007735”00,但输出报告将其命名为 1 而不是格式化的数字,我首先想知道是否可以将其更改为显示格式化的值。有可能吗?

然后我想知道如何将客户端名称值从 1 更改为客户端名称。我的字段名称是 Client_ID 和 Client_Name,表名为 Clients。

我现在已经搜索了几个论坛并尝试了许多解决方案,但都给了我错误,任何帮助将不胜感激。如果我需要提供更多信息,请告诉我。

【问题讨论】:

【参考方案1】:

你似乎犯了许多罪。您不应该向表格添加格式,正如您所发现的,格式只是一种格式,它不会更改字段的内容(http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/MSAccess/AccessVBAJetSQL/why-you-should-not-add)。此外,您似乎添加了对 ClientID 的查找,这是另一个反功能 (http://access.mvps.org/access/lookupfields.htm)。

您需要再次查找客户端并重新格式化号码。

 Client = DlookUp("ClientName","ClientTable","ClientID=" & [Client_ID])
 Invoice = Format([Invoice_ID], """1007735""000")
 FileName= Invoice & "_" & Client & ".pdf"

【讨论】:

以上是关于如何以格式化 ID 值作为报告名称将 MS Access 报告导出为 PDF?的主要内容,如果未能解决你的问题,请参考以下文章

VBA MS 项目将多个自定义报告以 PDF 格式保存到位置

MS Access:如何过滤非报告字段的报告?

MS Access 如何在报告中显示查询名称

如何在 ms Access 报告中使用别名

如何设置MS-Access文本框以根据表值直接输入您正在键入的内容?

如何在临时表中添加Null Value记录?