vb script - user defined type not defined.

Mark Drelinger
Mark Drelinger used Ask the Experts™
on
vb error started after Office 2010 upgrade. "User Defined Type not Defined".
Function EMailAlerts()
'Created by Helen Feddema 31-Oct-2009
'Last modified by Helen Feddema 31-Oct-2009

On Error GoTo ErrorHandler

   Dim dbs As DAO.Database
   Dim rst As DAO.Recordset
   Dim appOutlook As Outlook.Application (ERROR WAS POINTING TO THIS LINE)
   Dim msg As Outlook.MailItem
   Dim strEmail As String
   
   Set dbs = CurrentDb
   Set rst = dbs.OpenRecordset("qryExceptionList")
   Set appOutlook = GetObject(, "Outlook.Application")
   
   Do While Not rst.EOF
      strEmail = Nz(rst![EmailAddress]) & ";MarkDrelinger@SchmidtEquipment.com"
'      strEmail = "MarkDrelinger@SchmidtEquipment.com"
      If strEmail <> "" Then
         'Create email
         Set msg = appOutlook.CreateItem(olMailItem)
         msg.To = strEmail
         msg.Subject = "Machine Status or Location Change - Requested Alert"
         msg.Body = "Machine Status Change for Stock # " & (rst![StockNo]) & "." & vbCrLf & "Alert Requested by " & (rst![SubmittedBy]) & " on " & (rst![DateSubmitted]) & "." & vbCrLf & "Alert Comments: " & (rst![Comments]) & "." & vbCrLf
         msg.Body = msg.Body & vbCrLf & "Status changed from " & (rst![Original_Status_]) & " to " & (rst![New_Status_]) & vbCrLf
         msg.Body = msg.Body & "Branch changed from " & (rst![Original_Branch_]) & " to " & (rst![New_Branch_]) & vbCrLf
         msg.Body = msg.Body & vbCrLf & "To view or edit Alert Settings, click: https://www.teamschmidt.com/WebApps2.0/EquipmentDataDetailsAlertEdit.asp?varID=" & (rst![ID]) & vbCrLf & "To view MIM Details, click: https://www.teamschmidt.com/WebApps2.0/EquipmentDataDetails.asp?varStockNo=" & (rst![StockNo])
         'Comment out next line and uncomment Send line
         'to send automatically
         'msg.Display
         msg.Send
      End If
      rst.MoveNext
   Loop
   
ErrorHandlerExit:
   rst.Close
   Set rst = Nothing
   Set appOutlook = Nothing
   Exit Function

ErrorHandler:
   'Outlook is not running; open Outlook with CreateObject
   If Err.Number = 429 Then
      Set appOutlook = CreateObject("Outlook.Application")
      Resume Next
   Else
   If Err.Number = 287 Then
      Set appOutlook = CreateObject("Outlook.Application")
      Resume Next
   Else
      MsgBox "Error No: " & Err.Number _
         & " in EMailAllContacts procedure" _
         & "; Description: " & Err.Description
      Resume ErrorHandlerExit
   End If
      End If
End Function

Open in new window


Please advise if you have an idea what would need to be changed.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
I'd guess due to the upgrade the reference to the Outlook object got lost.

"Use the Reference command on the Visual Basic for Applications (VBA) Tools menu to set a reference to Microsoft Outlook xx.x Object Library, where xx.x represents the version of Outlook that you are working with. "

https://docs.microsoft.com/en-us/office/vba/outlook/concepts/getting-started/automating-outlook-from-a-visual-basic-application

Author

Commented:
thank you  - sorry for the delayed reply.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial