Vba 如何将带有HTML元素的格式化MS Outlook电子邮件正文保存到MS Access表中?

Vba 如何将带有HTML元素的格式化MS Outlook电子邮件正文保存到MS Access表中?,vba,ms-access,outlook,Vba,Ms Access,Outlook,我尝试了以下简单代码: Sub sendOutlookEmail() Dim oApp As Outlook.Application Dim oMail As MailItem Set oApp = CreateObject("Outlook.application") Set oMail = oApp.ActiveExplorer.Selection.Item(1) Dim HTMLBody As String HTMLBody = oMail.HTMLBody HTMLBody = R

我尝试了以下简单代码:

Sub sendOutlookEmail()
Dim oApp As Outlook.Application
Dim oMail As MailItem
Set oApp = CreateObject("Outlook.application")

Set oMail = oApp.ActiveExplorer.Selection.Item(1)

Dim HTMLBody As String
HTMLBody = oMail.HTMLBody

HTMLBody = Replace(HTMLBody, Chr(34), Chr(34) & Chr(34), 1)

Dim sql As String
sql = "UPDATE email_body set email_body = " & Chr(34) & HTMLBody & Chr(34)

Debug.Print sql
CurrentDb.Execute sql

Set oMail = Nothing
Set oApp = Nothing

End Sub
这段简单的代码使用所有HTML元素将电子邮件正文保存到my MS Access表中。稍后,我想运行以下代码:

Sub sendOutlookEmail()
Dim oApp As Outlook.Application
Dim oMail As MailItem
Set oApp = CreateObject("Outlook.application")

Set oMail = oApp.CreateItem(olMailItem)

Dim sql As String
sql = "Select email_body from email_body"

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset(sql)

oMail.Body = rs("email_body")
oMail.Subject = "email sent from ms access using vba 2"
oMail.To = "receiver@somthing.com"

oMail.Display

Set oMail = Nothing
Set oApp = Nothing

End Sub
该代码应该获取存储在我的MS Access表中的任何内容,并创建一封新的电子邮件。不过,它将文本HTML代码复制到电子邮件正文中,这显然不是我想要的。有没有办法让它以正确的方式显示?

使用,而不是使用

[HTMLBody属性]返回或设置表示指定项的HTML正文的字符串。[这两者都是]读/写


听起来你需要是的,谢谢。这几乎是正确的解决方案。我编辑了这个问题。为什么你在第二个子里有oMail.Body?哈哈,你是对的。应该是oMail.HTMLBody现在可以完美工作了。谢谢。把答案贴出来,我会给你正确的答案