【发布时间】:2011-08-10 11:28:14
【问题描述】:
我有一个表单 (Cobind_frmMain),它允许用户创建一个附加到它的标题池。所以有一个顶级池名称(TopLvlPoolName),在子表单上,标题被添加到它。我需要的是为每个标题发布一份报告。我已经设置好了报告和查询。现在,报告将在一个文件中显示所有标题。标题位于名为“CatCode”的字段中。
我需要的是以下内容:
1. 将每个标题另存为 PDF 并保存到我们的服务器。
2. 打开电子邮件并附上 PDF。
3. 重复直到完成所有标题。
编辑: 这是我目前所拥有的代码,但我仍然收到的错误消息是:Set Recordset 行上的“参数太少”。我正在尝试在 strSQL 行中设置参数。我希望 PartPoolName(在 Cobind_qryReport 中,一个查询)等于打开表单上的 TopLvlPoolName。 Cobind_qryReport 的 SQL 如下所示:
Private Sub btn_Run_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Set db = CurrentDb
strSQL = "Select * FROM Cobind_qryReport WHERE PartPoolName = " & Me.TopLvlPoolName
Set rs = db.OpenRecordset(strSQL)
On Error GoTo Err_PO_Click
If MsgBox("Do you wish to issue the cobind invites?", vbYesNo + vbQuestion, "Confirmation Required") = vbYes Then
rs.MoveFirst
Do While Recordset.EOF = False
DoCmd.OutputTo acOutputReport, "Cobind_rptMain", acFormatPDF, "K:\OB MS Admin\Postage\CoBind Opportunities\Sent Invites\" & [CatCode] & "_" & [PartPoolName] & "Cobind Invite_" & Format(Now(), "mmddyy") & ".pdf"
DoCmd.SendObject acSendReport, "Cobind_rptMain", acFormatPDF, , , , [CatCode] & "_" & [PartPoolName] & " Cobind Invite", "Please find the cobind invite attached. Response is needed by " & [RSVP] & ". Thank you.", True
Recordset.MoveNext
Loop
End If
Exit_PO_Click:
MsgBox ("It didn't work")
Exit Sub
Err_PO_Click:
MsgBox Err.Description
Resume Exit_PO_Click
End Sub
Cobind_qryReport SQL:
选择 tblEvents.EventTitle、Cobind_tblPartic.CatCode、Cobind_tblPartic.CodeQty、Cobind_tblPartic.PartPoolName、Cobind_tblTopLvl.RSVP、Cobind_tblPartic.ID
从 Cobind_tblTopLvl,Cobind_tblPartic 内部加入 tblEvents ON Cobind_tblPartic.CatCode = tblEvents.EventCode
按 tblEvents.EventTitle、Cobind_tblPartic.CatCode、Cobind_tblPartic.CodeQty、Cobind_tblPartic.PartPoolName、Cobind_tblTopLvl.RSVP、Cobind_tblPartic.ID 分组
按 Cobind_tblPartic.ID 订购;
再次感谢您的帮助!
【问题讨论】:
-
请确保并指定 Dim 语句的类型。它将为您节省心痛和跑步时间。
-
对不起 - 我不明白 Option Explicit。我到底要把它放在哪里?