【问题标题】:Auto populating Outlook email from MS Access Form从 MS Access 表单自动填充 Outlook 电子邮件
【发布时间】:2021-12-21 07:43:19
【问题描述】:

我有一个名为 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,而不是表单上显示的日期。

提前感谢您提供的任何帮助。

【问题讨论】:

    标签: vba outlook ms-access-2016


    【解决方案1】:

    使用.Display 代替.Send

    如果要发送 HTML,则需要构建 HTML。例如

    .HTMLBody = "<p>" & Insurer & "</p>" & _
         "<p>" & Premium & "</p>"
    

    等等。或者使用vbCrLf 分隔符构建您的字符串,然后在结果上使用HtmlEncode()

    您没有在代码中设置RenewalDate。如有必要,请使用Format() 函数。

    【讨论】:

    • 感谢您的帮助。除了 RenewalDate 之外,所有的都已排序,我会继续努力。
    猜你喜欢
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多