Private Sub cmdSendEmails_Click()
Dim strValue As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim qd As DAO.QueryDef
Dim td As DAO.TableDef
Dim strMsg As String
Dim StartTime As Date
Dim EndTime As Date
Dim stDocName As String
Dim QUOTE As String
Dim DocName As String
Dim strPath As Variant
Dim strSQL As String
Dim CountErr As Integer
Dim TestEmail As Boolean
Dim strEmail As String
On Error GoTo ErrProc
QUOTE = """"
CountErr = 0
Set db = CurrentDb()
stDocName = "Inspectors report"
TestEmail = DLookup("TestEmail", "tblEmail", "RecID = 1")
'get path
strPath = DLookup("FileFolder", "tblEMail", "RecID = 1")
If strPath & "" = "" Then
MsgBox "Please open email defaults form and add document path.", vbOKOnly
Exit Sub
End If
If Right(strPath, 1) <> "\" Then
strPath = strPath & "\"
End If
'delete old email errors
strSQL = "Delete * From tblNoEmailAddress"
DoCmd.SetWarnings False
DoCmd.Hourglass True
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
DoCmd.Hourglass False
'open email error recordset.
Set td = db.TableDefs!tblNoEmailAddress
Set rs2 = td.OpenRecordset
Set qd = db.QueryDefs!qGetIRDataJobs
Set rs = qd.OpenRecordset
StartTime = Now()
Me.lblElapsedTime.Visible = False
Me.lblStatus.Visible = True
Me.lblStatus.Caption = "Sending Emails...."
Me.Recalc
DoEvents
DoCmd.Hourglass (True)
If Me.txtJob & "" = "" Then
Do Until rs.EOF = True
Me.txtJob = rs!Job
GoSub PrintOrEmail
rs.MoveNext
Loop
Else
GoSub PrintOrEmail
End If
DoCmd.Hourglass (False)
DoCmd.SetWarnings (True)
Me.lblStatus.Caption = "Complete"
EndTime = Now()
Me.lblStatus.Visible = True
Me.lblElapsedTime.Visible = True
Me.lblElapsedTime.Caption = DateDiff("n", StartTime, EndTime) & " Minutes"
'close recordsets
rs.Close
rs2.Close
If CountErr > 0 Then
DoCmd.OpenReport "rptNoEmailAddress", acViewPreview
Else
MsgBox "All reports were emailed.", vbOKOnly
End If
ExitProc:
Exit Sub
PrintOrEmail:
DocName = strPath & rs!Job & "_" & Format(Date, "yyyymmdd") & ".pdf"
If rs!IR_Email & "" = "" Then
DoCmd.OpenReport stDocName, acViewNormal
rs2.AddNew
rs2!Job = Me.txtJob
rs2!PrintDate = Now()
rs2.Update
CountErr = CountErr + 1
Else
DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, DocName, False
' send the PDF via outlook
If TestEmail = True Then
strEmail = "dddd@sssssss.net"
Else
strEmail = rs!IR_Email
End If
strValue = Email_Via_Outlook(strEmail, "Quantity Review Report", "", False, DocName)
End If
Return
ErrProc:
MsgBox Err.Number & "--" & Err.Description
Resume ExitProc
End Sub