如何解决来自 MS Access 表单的电子邮件
我有一个带有事件过程的按钮,用于更新表单上的多个字段,在我尝试添加代码以发送电子邮件之前,它可以正常工作。
我在这里找到了代码并修改了我的字段名称。我没有收到任何错误,它只是不发送电子邮件。我使用的是 Office 365 和 Windows 10。
我也希望能够在电子邮件发送之前查看它,但还没有找到任何关于如何执行此操作的信息。任何帮助将不胜感激! :)
Dim oApp As New outlook.application
Dim oEmail As Outlook.MailItem
Set oEmail = oApp.CreateItem(olMailItem)
oEmail.To = Me.EmailRule
oEmail.Subject = Me.Subject.Value
oEmail.Body = Me.txtBody.Value
If Len(Me.Attachment) > 0 Then
oEmail.Attachments.Add Me.Attachment.Value
End If
With oEmail
If Not IsNull(.To) And Not IsNull(.Subject) And Not IsNull(.Body) Then
MsgBox "Email Sent!"
Else
MsgBox "please fill out the required fields."
End If
End With
解决方法
如果您想查看,则需要 oEmail.Send
或 oEmail.Display
。
为 Null 测试 oEmail.To/.Body/.Subject 将失败。这些永远不会为空 - 在提供其他数据之前,它们保持空字符串。可以在填充前使用 Debug.Print IsNull(oEmail.To)
进行验证。尝试使用 Null 填充将出现“无效使用 Null”错误。使用 Nz 处理可能的 Null:oEmail.To = Nz(Me.EmailRule,"")
。然后在 oEmail 元素中测试空字符串:If .To = "" Or .Subject = "" Or .Body = "" Then
或者在表单上测试控件:IsNull(Me.EmailRule)
并在尝试填充电子邮件元素之前执行此操作。考虑:
Dim oApp As Outlook.Application
Dim oEmail As Outlook.MailItem
If IsNull(Me.EmailRule) Or IsNull(Me.Subject) Or IsNull(Me.txtBody) Then
MsgBox "please fill out the required fields."
Else
Set oEmail = oApp.CreateItem(olMailItem)
With oEmail
.To = Me.EmailRule
.Subject = Me.Subject
.Body = Me.txtBody
If Len(Me.Attachment) > 0 Then
.Attachments.Add Me.Attachment
End If
.Display
End With
End If
不相关但可能感兴趣:不需要键入 .Value
,因为这是数据控件的默认属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。