Database 如何在MS Access中自动打印单个表单的PDF?
我正试图从表格中为数据库中的每条记录打印一个单独的pdf文件(账单发票)Database 如何在MS Access中自动打印单个表单的PDF?,database,forms,ms-access,vba,record,Database,Forms,Ms Access,Vba,Record,我正试图从表格中为数据库中的每条记录打印一个单独的pdf文件(账单发票) 要打印的表单:billingvoice- 表格来源:familysubdiscscrand 主字段:Fnum 我尝试从这里获取代码: 这是我试图修改的代码: Option Compare Database Option Explicit Private Sub PrintBtn01_Click() Dim rsGroup As DAO.Recordset Dim ColumnName As String, m
- 要打印的表单:
billingvoice-
- 表格来源:
familysubdiscscrand
- 主字段:
Fnum
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
s的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)
...
如果
FNum
是数字,则不应将标准值用单引号括起来,即:
"Column='" & ColumnName & "'"
应成为:
"Column=" & ColumnName
此外,除非表单上有一个名为列的字段,否则应将其更改为:
"FNum = " & ColumnName
如果FNum
是数字,则不应将标准值用单引号括起来,即:
"Column='" & ColumnName & "'"
应成为:
"Column=" & ColumnName
此外,除非表单上有一个名为列的字段,否则应将其更改为:
"FNum = " & ColumnName
李麦克,谢谢你的帮助。我采纳了你的建议,改成了报告而不是表格。它正在发生,而且肯定比以前好。它仍然不是完全自动化的,我收到一些奇怪的似乎无关的错误(提示输入本应传递到报告的变量,可能是损坏,但可能只是我遗漏了一些东西)。“我会继续修补它,让你知道它是如何运行的。李·麦克,谢谢你的帮助。我采纳了你的建议,转而使用了一个报告而不是一个表格。它正在出现,而且肯定比以前更好。它仍然不是全自动的,而且我遇到了一些奇怪的似乎无关的错误(提示输入本应传递给报告的变量,可能是损坏,但可能只是我遗漏了什么。”我会继续修补它,并让您知道它是如何运行的。