【问题标题】:How to import HTML Outlook mails into MS Access using VBA如何使用 VBA 将 HTML Outlook 邮件导入 MS Access
【发布时间】:2017-12-28 03:08:53
【问题描述】:

我已经在互联网上搜索了几个小时以找到我的问题的解决方案。

我很早就知道如何导入邮件,但无法像手动将 OL 中的正文复制到访问表单上的富文本备忘录字段中那样保持 HTML 正文的格式。

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

我什至尝试读取剪贴板中的 .HTMLbody 属性

clp.SetText .HTMLBody
clp.PutInClipboard

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

如果没有在访问字段中格式化邮件,则内容几乎无法阅读,因为正文中没有标签、换行符等。

欢迎任何帮助。 谢谢

【问题讨论】:

    标签: html sql-server ms-access


    【解决方案1】:

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

    您可以在加载时以及邮件字段更改时在 webbrowser 控件中加载 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 网络浏览器,而不是 ActiveX 网络浏览器。此代码适用于两者,但 Access Web 浏览器控件使用更现代的 IE 版本,并且不带有不可移动的边框。

    【讨论】:

    • 埃里克,非常感谢,它有效。但是玩弄我找到了另一个解决方案。我坚持使用剪贴板的解决方案,但没有使用 Ctrl+V 粘贴它,而是使用代码 clipboard.GetFromClipboard Me.olBody = clipboard.GetText。行距、制表符、所有内容都显示在备忘录字段中,如邮件、execpt 字体和字体颜色。所以我把我的 sloutin 和你的 webcontrol 结合起来,得到我想要的。谢谢!
    • 这很好,但请注意,使用完整的 HTML,您还可以查看图像、字体、链接以及可能包含在某些类型的邮件(例如新闻通讯)中的更多内容.根据您使用的邮件类型,它可能相关也可能不相关。
    • Erik,你对图像等的看法是对的。我可以在 Webbrowser 控件中显示它,但是如何将整个邮件与图像一起保存在表格中?现在每张图片都显示一个 x,这在我的情况下就足够了,但是还有其他方法可以解决吗??
    • 图片经常在线链接。如果图像是嵌入的,那​​么你就不走运了(除非你将邮件保存为文件,然后导入该文件)
    猜你喜欢
    • 2020-05-16
    • 2020-05-20
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多