使用 VBA 从 MS Access 发送电子邮件
Posted
技术标签:
【中文标题】使用 VBA 从 MS Access 发送电子邮件【英文标题】:Using VBA to send email from MS Access 【发布时间】:2021-11-21 21:26:24 【问题描述】:你好 *** 成员
我是一名长期使用 MS Access 的用户,他已远离 VBA 和 SQL,并创建了一个表单,并希望使用从子表单捕获数据的按钮(基于查询)发送电子邮件。
我使用这个YouTube 视频作为指导,但遇到了卡住(从“msg =...”开始,当我尝试运行代码时(如下)。
不胜感激。
Private Sub cmd_EmailContact_Click()
Dim Msg As String
**msg = "Dear " & First name & ",<P>" & _
Student First name & "has been successfully been loaded on the platform" & ",<P>" & _
"Student login details on the platform are:" & ",<P>" & _
"Username:" & Username & ",<P>" & _
"Password:" & Password**
Dim O As Outlook.Application
Dim M As Outlook.MailItem
Set O = New Outlook.Application
Set M = O.CreateItem(olMailItem)
With M
.BodyFormat = olFormathtml
.HTMLBody = Msg
.To = Email
.Subject = "Student available on OARS"
.Display
End With
Set M = Nothing
Set O = Nothing
End Sub
【问题讨论】:
这能回答你的问题吗? Sending Email using Access VBA 什么是Student First name
?你认为这是某种变量名吗? fwiw,我不建议使用 youtube 来学习如何编码。
您真正要问的是“如何使用变量在多行上创建字符串?”因为其余代码都很好(与实际从任何地方发送电子邮件无关),尽管我认为不需要.BodyFormat
。
尝试使用msg = "Test"
而不是设置msg
的代码块,它应该可以工作。
感谢您对 BraX 的建议。我会试试 msg = "Test"。我想在电子邮件的正文中包含以下变量。在表单上的查询中填充变量。 - 名字(教师姓名) - 学生名字 - 用户名 - 密码
【参考方案1】:
要以 HTML 格式发送电子邮件,您需要使用 HTML 标记格式化正文并设置olMailItem
(电子邮件)的HTMLBody
属性,如下所示。
该示例使用后期绑定(无需引用 Outlook),这意味着它可以在安装了不同版本的 Outlook 时运行。
Private Sub cmd_EmailContact_Click()
Dim firstName As String, _
studentFirstName As String, _
userName As String, _
password As String, _
email As String, _
body_ As String
'provide values
firstName = "ABC"
studentFirstName = "XYZ"
userName = "User"
password = "Pass"
email = "foo@bar.com"
'build body
body_ = "<p> Dear" & firstName & ", </p>" _
& "<p>" & studentFirstName & " has been successfully been loaded on the platform. </p>" _
& "<p> Student login details on the platform are: </p>" _
& "<p> Username: " & userName & "</p>" _
& "<p> Password: " & password & "</p>"
'send email
With CreateObject("Outlook.Application")
With .CreateItem(0) 'olMailItem
.BodyFormat = 2 'olFormatHTML
.To = email
.Subject = "Student available on OARS"
.HTMLBody = "<html><head></head><body>" & body_ & "</body></html>"
.Display
End With
End With
End Sub
您需要为以下变量提供值:
名字 学生名字 用户名 密码 电子邮件【讨论】:
以上是关于使用 VBA 从 MS Access 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
VBA Excel - 从 MS Access 将列名保存到电子表格