Моя цель - отправить электронное письмо автору записи, если кто-то внес изменения в эту запись. Я нашел if Updated(ctl)
через поиск Google, но страница не определила полезную нагрузку этой функции. Полагаю, я мог бы выполнить DLookup
на каждом элементе управления, но, похоже, это займет очень много времени. Есть ли способ быстро определить, был ли обновлен элемент управления?
Private Sub Form_AfterUpdate()
On Error GoTo Form_AfterUpdate_Err
Dim ctl As Control
Dim updates As String
For Each ctl In Me.Controls
If Updated(ctl) Then
updates = updates & ctl.Name & " has been updated to " & ctl.value & vbCrLf
End If
Next ctl
If Len(updates) > 0 Then
Dim appOutlook As Outlook.Application
Dim newEmail As Outlook.MailItem
Dim signature As String
Set appOutlook = CreateObject("Outlook.Application")
Set newEmail = appOutlook.CreateItem(olMailItem)
With newEmail
signature = .Body
.BodyFormat = olFormatRichText
.To = DLookup("[email]", "[tbl_users]", "[checkNumber] = '" & Me.a10_contact_name & "'")
.Subject = Me.a1_mva_reference
.Body = DLookup("[firstName]", "[tbl_users]", "[checkNumber] = '" & Me.a10_contact_name & "'") & "," & vbCrLf & vbCrLf & _
"This email is regarding " & Me.a1_mva_reference & " - " & Me.a13_description & vbCrLf & vbCrLf & _
updates & vbCrLf & vbCrLf & _
signature
.Display
End With
End If
Form_AfterUpdate_Exit:
Exit Sub
Form_AfterUpdate_Err:
Dialog.Box (Error$)
Resume Form_AfterUpdate_Exit
End Sub