Этот VBA работает до того, как мы конвертируем в Office 2016. У меня есть 2 базы данных того же VBA, но заходящие в разные места. Я попытался заменить 8G5DB на адрес электронной почты, но все равно не работает
Set objOutlookRecip = .Recipients.Add("8G5DB")
один останавливается на первой строке, а другой останавливается на
Set objOutlookRecip = .Recipients.Add("8G5DB")
Это мой код:
Private Sub IRR_requested_AfterUpdate()
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Set dbs = CurrentDb
' Set rst = dbs.OpenRecordset("tblCIPReqEmails")
' rst.MoveFirst
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
Set objOutlookRecip = .Recipients.Add("8G5DB")
objOutlookRecip.Type = olTo
.Subject = "IRR Requested"
.Body = "SSN: " & Forms!frmAccession!SSN & vbCrLf & vbCrLf & " Employee Name: " & Forms!frmAccession![First Name] & " " & Forms!frmAccession![Middle Name] & " " & Forms!frmAccession![Last Name] & vbCrLf & vbCrLf & " IRR Requested: " & Forms!frmAccession![IRR requested] & vbCrLf & vbCrLf & "What Prior service is missing and dates of service" & vbCrLf & vbCrLf & "Give OPF to Specialist" & vbCrLf & vbCrLf & "Thank You." & vbCrLf & vbCrLf
.Importance = olImportanceHigh
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
If Not objOutlookRecip.Resolve Then
objOutlookMsg.Display
End If
Next
' .Send
objOutlookMsg.Display
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub
Редактировать - из комментариев
Проверены следующие ссылки:
- Визуальные основы для приложений;
- библиотека объектов Microsoft Access 16.0;
- OLE Automation
- Ядро базы данных Microsoft Office 16.0 Access Object Libary