alexfwalker81
Member
- Local time
- Today, 04:57
- Joined
- Feb 26, 2016
- Messages
- 93
How can I adjust this code to loop through each row in a query and send an email for each row?
Code:
Public Function SendEmail()
Dim rsID As DAO.Recordset
Dim rsDT As DAO.Recordset
Dim rsDR As DAO.Recordset
Dim rsCD As DAO.Recordset
Dim rsCN As DAO.Recordset
Dim rsPN As DAO.Recordset
Dim rsPR As DAO.Recordset
Dim rsAD As DAO.Recordset
Dim rsCM As DAO.Recordset
Dim db As DAO.Database
Dim mail As CDO.MESSAGE
Dim config As CDO.Configuration
Dim latest_entry_ID As String
Dim latest_entry_DT As String
Dim latest_entry_DR As String
Dim latest_entry_CD As String
Dim latest_entry_CN As String
Dim latest_entry_PN As String
Dim latest_entry_PR As String
Dim latest_entry_AD As String
Dim latest_entry_CM As String
latest_entry_ID = "SELECT qry_latest_entry.[ID] FROM qry_latest_entry"
latest_entry_DT = "SELECT qry_latest_entry.[DepositType] FROM qry_latest_entry"
latest_entry_DR = "SELECT qry_latest_entry.[DateReceived] FROM qry_latest_entry"
latest_entry_CD = "SELECT qry_latest_entry.[ChequeDate] FROM qry_latest_entry"
latest_entry_CN = "SELECT qry_latest_entry.[ChequeNumber] FROM qry_latest_entry"
latest_entry_PN = "SELECT qry_latest_entry.[PayeeName] FROM qry_latest_entry"
latest_entry_PR = "SELECT qry_latest_entry.[PayeeReference] FROM qry_latest_entry"
latest_entry_AD = "SELECT qry_latest_entry.[AmountDeposited] FROM qry_latest_entry"
latest_entry_CM = "SELECT qry_latest_entry.[Comments] FROM qry_latest_entry"
Set db = CurrentDb
Set rsID = db.OpenRecordset(latest_entry_ID)
Set rsDT = db.OpenRecordset(latest_entry_DT)
Set rsDR = db.OpenRecordset(latest_entry_DR)
Set rsCD = db.OpenRecordset(latest_entry_CD)
Set rsCN = db.OpenRecordset(latest_entry_CN)
Set rsPN = db.OpenRecordset(latest_entry_PN)
Set rsPR = db.OpenRecordset(latest_entry_PR)
Set rsAD = db.OpenRecordset(latest_entry_AD)
Set rsCM = db.OpenRecordset(latest_entry_CM)
Set mail = CreateObject("CDO.Message")
Set config = CreateObject("CDO.Configuration")
config.Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
config.Fields(cdoSMTPServer).Value = "10.0.0.102"
config.Fields(cdoSMTPServerPort).Value = 25
config.Fields.Update
Set mail.Configuration = config
If DCount("[ID]", "qry_latest_entry_is_cheque") = 0 Then
With mail
.To = "blah"
.From = "blah"
.Subject = "BACS Received from " & rsPN![PayeeName] & " - " & rsPR![PayeeReference] & " - " & rsAD![AmountDeposited]
.TextBody = "Deposit Receipt ID: " & rsID![ID] & vbCrLf & "Deposit Type: " & rsDT![DepositType] & vbCrLf & "Date Received: " & rsDR![DateReceived] & vbCrLf & "Payee Name: " & rsPN![PayeeName] & vbCrLf & "Payee Reference: " & rsPR![PayeeReference] & vbCrLf & "Amount Deposited: " & rsAD![AmountDeposited] & vbCrLf & "Comments: " & rsCM![Comments]
.Send
End With
Else
With mail
.To = "blah"
.From = "blah"
.Subject = "Cheque Received from " & rsPN![PayeeName] & " - " & rsPR![PayeeReference] & " - " & rsAD![AmountDeposited]
.TextBody = "Deposit Receipt ID: " & rsID![ID] & vbCrLf & "Deposit Type: " & rsDT![DepositType] & vbCrLf & "Date Received: " & rsDR![DateReceived] & vbCrLf & "Date on Cheque: " & rsCD![ChequeDate] & vbCrLf & "Cheque Number" & rsCN![ChequeNumber] & vbCrLf & "Payee Name: " & rsPN![PayeeName] & vbCrLf & "Payee Reference: " & rsPR![PayeeReference] & vbCrLf & "Amount Deposited: " & rsAD![AmountDeposited] & vbCrLf & "Comments: " & rsCM![Comments]
.Send
End With
End If
Set config = Nothing
Set mail = Nothing
End Function