Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Access通过SQL/VBA查找mailitem的Outlook电子邮件地址_Sql_Vba_Ms Access_Outlook - Fatal编程技术网

使用Access通过SQL/VBA查找mailitem的Outlook电子邮件地址

使用Access通过SQL/VBA查找mailitem的Outlook电子邮件地址,sql,vba,ms-access,outlook,Sql,Vba,Ms Access,Outlook,在我将收件箱传输到新表“MyInbox”时,使用Access/VBA/SQL从收件箱获取各种电子邮件属性 我正在尝试查找收件箱中每个电子邮件项目的“发件人电子邮件”地址。运行时,它当前会弹出一个“输入参数…”,其中[Email]的值为空 有没有一个好的编译参考来查找所有这些不同类型的电子邮件SQL术语 循环浏览电子邮件项目。不幸的是,INSERT sql在电子邮件正文中嵌入了特殊字符,这显然与超链接有关。我认为不值得去想如何避开它 Public Sub ImportEmails() ' Set

在我将收件箱传输到新表“MyInbox”时,使用Access/VBA/SQL从收件箱获取各种电子邮件属性

我正在尝试查找收件箱中每个电子邮件项目的“发件人电子邮件”地址。运行时,它当前会弹出一个“输入参数…”,其中[Email]的值为空


有没有一个好的编译参考来查找所有这些不同类型的电子邮件SQL术语

循环浏览电子邮件项目。不幸的是,INSERT sql在电子邮件正文中嵌入了特殊字符,这显然与超链接有关。我认为不值得去想如何避开它

Public Sub ImportEmails()

' Set up Outlook objects.
Dim ol As New Outlook.Application
Dim of As Outlook.MAPIFolder
Dim objItems As Outlook.Items
Dim mo As Outlook.MailItem, Atmt As Outlook.Attachment
'Set of = ol.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox).Folders("Repairs")
Set of = ol.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox)
Set objItems = of.Items

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("MyInbox")

For Each mo In objItems

    'CurrentDb.Execute "INSERT INTO MyInbox SELECT '" & mo.SenderEmailAddress & "' AS Sender, '" & _
        mo.SenderName & "' AS SenderName, '" & mo.Subject & "' AS Subject, '" & _
        mo.body & "' AS Body, #" & mo.ReceivedTime & "# AS Received"

    rst.AddNew
    rst!EmailAdd = mo.SenderEmailAddress
    rst!SenderName = mo.Sender
    rst!Subject = mo.Subject
    rst!body = mo.body
    rst!Received = mo.ReceivedTime
    rst.Update
    'For Each Atmt In mo.Attachments
    '    Atmt.SaveAsFile "C:\path\" & Atmt.FileName
    'Next

Next
End Sub

问题是什么-错误消息,错误结果,什么都没有发生?查看我正在寻找什么可以取代此SQL字符串中的[Email]。“发件人”、“电子邮件地址”、“主题”、“正文”和“接收时间”是我的表列名。当我使用[Sender Email Address]并运行sub时,它会弹出一个“输入参数…”。。。(用于发件人电子邮件地址)。如果我在其中键入任何内容,它将是该列“Email Addy”中任何单个表行使用的值。为什么要创建新表而不是插入现有表?我使用不同代码中的SenderEmailAddress从文件夹中的每个邮件项目中提取电子邮件地址。不幸的是,它不能与您的代码一起工作。据我所知,该文件夹没有任何名称的此属性。它是邮件项目的属性。我能看到的唯一解决方案是在邮件项目中循环并对每个项目执行SQL。无法获取SQL引用文件夹作为一个整体来捕获该属性。由此,我得到运行时错误“-2147467259(80004005)”:对象“”的方法“SenderEmailAddress”失败(对于SenderEmailAddress),应用程序定义的或对象定义的错误(对于发件人和正文)我想我的Outlook安全设置在政府电脑上,这让我感到很尴尬。可能是因为代码在我的个人笔记本电脑上运行得非常完美。这与我的研究结果是一样的。我想我走运了。。。
Public Sub ImportEmails()

' Set up Outlook objects.
Dim ol As New Outlook.Application
Dim of As Outlook.MAPIFolder
Dim objItems As Outlook.Items
Dim mo As Outlook.MailItem, Atmt As Outlook.Attachment
'Set of = ol.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox).Folders("Repairs")
Set of = ol.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox)
Set objItems = of.Items

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("MyInbox")

For Each mo In objItems

    'CurrentDb.Execute "INSERT INTO MyInbox SELECT '" & mo.SenderEmailAddress & "' AS Sender, '" & _
        mo.SenderName & "' AS SenderName, '" & mo.Subject & "' AS Subject, '" & _
        mo.body & "' AS Body, #" & mo.ReceivedTime & "# AS Received"

    rst.AddNew
    rst!EmailAdd = mo.SenderEmailAddress
    rst!SenderName = mo.Sender
    rst!Subject = mo.Subject
    rst!body = mo.body
    rst!Received = mo.ReceivedTime
    rst.Update
    'For Each Atmt In mo.Attachments
    '    Atmt.SaveAsFile "C:\path\" & Atmt.FileName
    'Next

Next
End Sub