У меня есть форма (Cobind_frmMain), которая позволяет пользователю создавать пул названий, прикрепленных к нему. Таким образом, есть имя пула верхнего уровня (TopLvlPoolName) и на подформе, названия добавляются к нему. Мне нужно выпустить отчет для каждого из названий. У меня есть отчет и все запросы настроены. Прямо сейчас в отчете будут показаны все заголовки в одном файле. Заголовки находятся в поле под названием «CatCode».Доступ к VBA Loop через подсказку
Мне нужно следующее:
1. Сохраните каждый заголовок в формате PDF и сохраните его на нашем сервере.
2. Откройте электронную почту и приложите PDF.
3. Повторяйте до тех пор, пока все заголовки не будут выполнены.
EDIT: Это то, что у меня есть для кода, и сообщение об ошибке, которое я до сих пор получаю, это: «Слишком мало параметров» в строке Set Recordset. Я пытаюсь установить параметр в строке strSQL. Я хочу, чтобы PartPoolName (в Cobind_qryReport, запрос) равнялось TopLvlPoolName в открытой форме. SQL для Cobind_qryReport приведена ниже:
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 INNER РЕГИСТРИРУЙТЕСЬ tblEvents ПО Cobind_tblPartic.CatCode = tblEvents.EventCode GROUP BY tblEvents.EventTitle, Cobind_tblPartic.CatCode, Cobind_tblPartic.CodeQty, Cobind_tblPartic.PartPoolName, Cobind_tblTopLvl.RSVP, Cobind_tblPartic.ID ORDER BY Cobind_tblPartic.ID;
Еще раз спасибо за вашу помощь!
Пожалуйста, убедитесь, что вы указываете типы для операторов Dim. Это сэкономит вам душевную боль и время работы. –
Извините - я не понимаю Option Explicit. Где бы я это сказал? –