如何在MS Access中自动打印单个表格的PDF?

时间:2019-03-24 10:12:21

标签: database forms ms-access access-vba record

我正在尝试从表格中为数据库中的每个记录打印一个单独的pdf文件(开票)。

  • 要打印的表格:BillingInvoice-
  • 表格的来源:FamilySubDIscSubDIscGrand
  • 主要字段:Fnum

我尝试从此处获取代码: How to output multiple PDF files based on record in MS Access?

这是我尝试对其进行修改的代码:

Option Compare Database
Option Explicit

Private Sub PrintBtn01_Click()

Dim rsGroup As DAO.Recordset
  Dim ColumnName As String, myPath As String

  myPath = "C:\test\"

  Set rsGroup = CurrentDb.OpenRecordset("SELECT DISTINCT FNum FROM FamilySubDIscSubDIscGrand", _
                                    dbOpenDynaset)
Do Until rsGroup.EOF
  ColumnName = rsGroup!FNum

  ' OPEN FORM, FILTERING RECORDSOURCE BY COLUMN VALUE
  DoCmd.OpenForm "BillingInvoice-", acViewPreview, , "Column='" & ColumnName & "'"
  ' OUTPUT FORM TO FILE

  DoCmd.OutputTo acOutputForm, "BillingInvoice-", acFormatPDF, _
                                myPath & ColumnName & ".pdf", False

    rsGroup.MoveNext
  Loop

End Sub

我做错了什么。

它已成功按顺序保存了FNum个pdf文件,但为每个FNum打印了单个记录,它正在打印所有记录。所以我最终得到:

FNum001.pdf (all records for db)
FNum002.pdf (all records for db)
Fnum003.pdf (all records or db)
...

但是我需要的是:

FNum001.pdf (individual record for FNum001)
FNum002.pdf (individual record for FNum002)
FNum003.pdf (individual record for FNum003)
...

1 个答案:

答案 0 :(得分:0)

如果FNum是数字,则您不应在准则值周围用单引号引起来,即:

"Column='" & ColumnName & "'"

应成为:

"Column=" & ColumnName

此外,除非表单上有一个名为Column的字段,否则应将其更改为:

"FNum = " & ColumnName