【发布时间】:2020-12-20 03:24:42
【问题描述】:
我有一个带有命令按钮的 Access 表单,可以打开报告并在本地文件夹中创建 .PDF 文件。每个 .PDF 报告都有不同的名称(1234.pdf、4321.pdf 等)。数字代表员工编号,报告是该员工当前的休假时间余额。所以基本上,我最终在文件夹中有大约 60 个 .PDF 文件,每个文件用于不同的员工。创建这些 .PDF 文件后,我希望通过 Access 将它们通过电子邮件发送给每个员工,并附上他们自己的 .PDF 附件,而不是我在 Outlook 中创建单独的电子邮件并手动附加文件。我知道如何将一个 .PDF 文件附件发送给一个或多个收件人,但不知道如何向单个收件人发送特定的 .PDF 文件附件。我在想也许文件可以在创建后立即发送,然后继续创建下一个文件,等等。我不知道。下面是我用来为每个员工编号创建 .PDF 文件的代码。顺便说一句,员工编号和电子邮件地址存储在同一个员工表中,如果有帮助的话。
Private Sub CmdAllLeavePDF_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim MyFileName As String
Dim mypath As String
Dim temp As String
Dim sNow As String
mypath = "C:\Users\rbryan_2\Desktop\EDM Reports PDF\"
sNow = Format(Now(), "mmddyyyy")
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT DISTINCT [TblNames.EmpID] FROM [QurEmpLeaveCurrAll]", dbOpenSnapshot)
Do While Not rs.EOF
temp = rs("TblNames.EmpID")
MyFileName = rs("TblNames.EmpID") & " - " & sNow & ".PDF"
DoCmd.OpenReport "RptEmpLeaveCurrAll", acViewPreview, , "[TblNames.EmpID]='" & temp & "'"
DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & MyFileName
DoCmd.Close acReport, "RptEmpLeaveCurrAll", acSaveYes
DoEvents
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
Beep
Eval ("MsgBox ('PDF FILES CREATED!@Individual Employee Leave Totals Reports Were Successfully Created@In The EDM Reports PDF File Folder.@@',64,' Employee Data Management')")
Me!CmdN.SetFocus
End Sub
【问题讨论】:
-
您在显示电子邮件地址的表单上是否绑定了
Textbox?表格上包含电子邮件地址的字段的名称是什么?你能给我们看一张你的桌子的截图吗? -
表单上没有绑定文本框,它只是一个带有命令按钮的表单,可以根据各种查询打印各种报告。表名称为 TblNames,包含电子邮件地址的字段称为 EmpEmail。包含员工 ID 的字段称为 EmpID。这有帮助吗?
标签: vba ms-access ms-access-2007