单击按钮以从 MS Access 表单中的字段填充 Outlook 电子邮件

click button to populate Outlook email from fields in MS Access Form

我正在努力提高我对 MS Access 的了解,以使我的公司运营受益。目前我正在尝试使用表单中的信息来填充电子邮件。在添加更多信息之前,我一直保持基本状态以确保我的理论是正确的。

我有一个名为 ClientListtbl 的 table 和一个名为 ClientListfrm 的表格。 我想要一个按钮来生成一封电子邮件,该电子邮件在电子邮件的“收件人”部分预填充了电子邮件地址(名为 EmailAddress 的字段),在主题中预填充了姓氏(名为 LastName 的字段)。我最终会想在电子邮件正文中添加一个“注释”字段,但我认为最好从小处着手。 在浏览了 Whosebug 和其他资源之后,我发现了一个似乎适合并将其改装到我的数据库中的代码,代码如下:

Private Sub Command20_Click()

    Dim LastName As Variant
    Dim Email As Variant
    Dim objOutlook As Object
    Dim objEmail As Object

    LastName = ClientListfrm!LastName
    Email = ClientListfrm!EmailAddress

    Set objOutlook = CreateObject("Outlook.Application")
    Set objEmail = objOutlook.CreateItem(0)

    With objEmail
     .To = Email
     .Subject = LastName
     .send
End With

    Set objEmail = Nothing
    Set objOutlook = Nothing

End Sub

EmailAddress为短文本 LastName 是短文本

当我点击按钮时,我收到一条错误消息

run-time error '424' Object required

单击调试 LastName = ClientListfrm!LastName 会突出显示。所以我尝试将 LastName 和 EmailAddress 更改为 As Object。这给出了同样的错误。

非常感谢任何帮助。

干杯

您尝试在表单中调用字段的方式存在语法错误。这对我有用,但可能还有其他方法:

Private Sub Command20_Click()

Dim LastName As Variant
    Dim Email As Variant
    Dim objOutlook As Object
    Dim objEmail As Object

    LastName = Forms("ClientListfrm").LastName
    Email = Forms("ClientListfrm").EmailAddress

    Set objOutlook = CreateObject("Outlook.Application")
    Set objEmail = objOutlook.CreateItem(0)

    With objEmail
     .To = Email
     .Subject = LastName
     .send
End With

    Set objEmail = Nothing
    Set objOutlook = Nothing


End Sub

这个 - 参考 Outlook - 对我有用:

Private Sub Command20_Click()

    Dim LastName As Variant
    Dim Email As Variant
    Dim objOutlook As Outlook.Application
    Dim objEmail As Outlook.MailItem

    LastName = "Macron"           'ClientListfrm!LastName
    Email = "someone@example.com" 'ClientListfrm!EmailAddress

    Set objOutlook = Outlook.Application
    Set objEmail = objOutlook.CreateItem(olMailItem)

    With objEmail
        .To = Email
        .Subject = LastName
        .send
    End With
    
    Set objEmail = Nothing
    Set objOutlook = Nothing

End Sub

所以,缺少的可能是表单控件的语法:

    LastName = Forms!ClientListfrm!LastName.Value
    Email = Forms!ClientListfrm!EmailAddress.Value