如何使用VBA将HTML Outlook邮件导入MS Access

时间:2017-12-27 17:24:43

标签: html sql-server ms-access

我一直在互联网上搜索数小时,以找到解决问题的方法。

我知道如何长时间导入邮件,但是无法保存HTML正文的格式,就像我手动将OL中的正文复制到访问权限的富文本备忘录字段中一样形式。

字段(olbody)绑定到SQL服务器表字段olbody(nvarchar(max)),并且在插入剪贴板内容时可以存储html邮件正文。

我甚至试图读取剪贴板中的.HTMLbody属性

clp.SetText .HTMLBody
clp.PutInClipboard

然后我在字段中用Ctrl + V手动粘贴剪贴板的内容,但同样,它不像HTML邮件那样显示。但我可以看到所有HTML命令,它们应该格式化邮件。

如果没有在访问字段中格式化邮件,内容几乎不可读,因为正文中没有tab,linekip等。

欢迎任何帮助。 感谢

1 个答案:

答案 0 :(得分:1)

显示HTML的正确方法是使用Web浏览器。这意味着:使用Web浏览器控件!

您可以在加载时在Web浏览器控件中加载HTML,并在邮件字段更改时加载。

示例代码:

Private Sub Form_Current()
    Dim wb As Object
    Set wb = MyWebbrowserControl.Object
    With wb
        .Navigate2 "about:blank"
        Do Until .ReadyState = 4 '=READYSTATE_COMPLETE
            'This is a somewhat inefficient way to wait, but loading a blank page should only take a couple of milliseconds
            DoEvents
        Loop
        .Document.Open
        .Document.Write MemoField.Value
        .Document.Close
    End With
End Sub

将Memofield替换为您的邮件字段,将MyWebbroserControl替换为您的webbrowser控件,您应该准备好了。

请注意,您可能应该使用Access Web浏览器,而不是ActiveX Web浏览器。此代码适用于两者,但Access Web浏览器控件使用更现代的IE版本,并且没有不可移动的边框。