vba - 从 MS Access 表单自动填充 Outlook 电子邮件
问题描述
我有一个名为 ClientListtbl 的表和一个名为 ClientListfrm 的表单。在表单上有一个单击按钮可自动生成电子邮件。请看下面的代码
Private Sub Command20_Click()
Dim LastName As Variant
Dim Email As Variant
Dim Notes As Variant
Dim Insurer As Variant
Dim Premium As Variant
Dim RenewalDate As Date
Dim objOutlook As Object
Dim objEmail As Object
LastName = Forms("ClientListfrm").LastName
Email = Forms("ClientListfrm").EmailAddress
Notes = Forms("ClientListfrm").Notes
Insurer = Forms("ClientListfrm").Insurer
Premium = Forms("ClientListfrm").Premium
Set objOutlook = CreateObject("Outlook.Application")
Set objEmail = objOutlook.CreateItem(0)
With objEmail
.To = Email
.Subject = "transfer " & LastName & " from James"
.HTMLBody = Insurer & _
Premium & _
RenewalDate & _
Notes
.Send
End With
Set objEmail = Nothing
Set objOutlook = Nothing
End Sub
我希望电子邮件不会自动发送,以便用户在发送前对其进行审查,但我似乎不知道如何更改它。
在 HTMLBody 中,我希望每个字段都有一个新行,但我见过和尝试过的所有示例都不起作用。
HTMLBody 中的 RenewalDate 在电子邮件中显示为 20000:00:00,而不是表单上显示的日期。
提前感谢您提供的任何帮助。
解决方案
使用.Display
而不是.Send
.
如果要发送 HTML,则需要构建 HTML。例如
.HTMLBody = "<p>" & Insurer & "</p>" & _
"<p>" & Premium & "</p>"
等等。或者用分隔符构建你的字符串vbCrLf
,然后HtmlEncode()
在结果上使用。
你没有RenewalDate
在你的代码中设置。Format()
如有必要,请使用该功能。
推荐阅读
- ios - iOS EXC_BAD_ACCESS (code=1, address=0x0) 仅在 iOS 9 上崩溃
- html - 添加 ::after 伪元素后锚链接不起作用
- python - Pandas:如何将日期格式 %Y-%M-%D 转换为 %Y%M%D?
- node.js - 如何在 Travis CI 的 localhost 上运行 cypress e2e 测试
- python-3.x - 可滚动画布不起作用,内容大于窗口
- delphi - 如何在 Windows 上运行提升的进程?
- android - 如何在 Retrofit2 和 Rx 中没有 Gson 转换器的情况下获得标题代码、正文的响应
- typescript - VS Code Typescript 自动完成 foo.forEach() 到 foo.array.forEach()
- z3 - 具有存在量词的 Z3 查询返回错误结果
- python - 将字符串(列表列表)转换为列表 python