使用MS Access 2003使用Outlook-VBA

武士刀24

我制作了以下程序,该程序从MS Access中的表格中获取电子邮件地址列表,并发送每封测试电子邮件。这是代码:

'Get data back from field birth date
    Set fld = rcdSet.Fields("Email Address")

    'Subject
    olMailItem.Subject = "Mailing List Test"

    'Loop through the records
    For i = 0 To intNumRecords
        'Recipient/s
        olMailItem.To = fld.Value

        'Body of email
        olMailItem.Body = strBodyText

        'Automatically send the email
        olMailItem.Send

       'Reset email item otherwise it won't work
        Set olMailItem = olFolder.Items.Add("IPM.Note")

        'Move to the next record
        rcdSet.MoveNext
    Next

是的,我打开了一个记录集,但没有在上面包含该代码。所以这是我的问题:

  1. 我的方法正确吗?我必须olMailItem在循环中重置,否则它将返回Type Error有发送多个电子邮件的更好方法吗?

  2. 我输入了无效的电子邮件以查看发生了什么,它又导致了另一起电子邮件Type Error无论如何,有没有检测到反弹(电子邮件Outlook向您发送通知,通知您这是一个错误的地址)电子邮件并将消息发送到Immediate Window(此时出于开发目的)

谢谢

注意-添加了邮件项目的声明

'Create Outlook object
Dim olApp As Outlook.Application

'Namespace
Dim olNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder

'Create a reference to the email item you will use to send the email
Dim olMailItem As Outlook.MailItem

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")

Set olFolder = olNS.GetDefaultFolder(olFolderInbox)
Set olMailItem = olFolder.Items.Add("IPM.Note")

如果我没有在for循环中重新设置olMailItem .To,则程序部分会发生错误-前面提到的Type Error

Machinegon

我不知道您声明了IPM类型的对象。注意并尝试发送它,而是声明一个mailitem。

这应该工作

'Loop through the records
For i = 0 To intNumRecords
     Set olMailItem = olFolder.Items.Add
    'Subject
    olMailItem.Subject = "Mailing List Test"

    'Recipient/s
    olMailItem.To = fld.Value

    'Body of email
    olMailItem.Body = strBodyText

    'Automatically send the email
    olMailItem.Send

    'Release new mailitem
    Set olMailItem = Nothing

    'Move to the next record
    rcdSet.MoveNext

Next

请访问http://msdn.microsoft.com/zh-cn/library/office/bb220348(v=office.12).aspx,以获取有关add方法的更多信息。

编辑:看到完整循环

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS-Access:使用vba移至NavigationControl

来自分类Dev

使用VBA显示MS Access报告

来自分类Dev

MS Access VBA - 使用日期过滤表单

来自分类Dev

MS Access 2013:通过VBA使用MS Word的语法检查

来自分类Dev

如何使用MS Access VBA发送Outlook附带的PDF电子邮件?

来自分类Dev

使用MS Access在Excel VBA中运行代码

来自分类Dev

MS Access使用VBA从访问文件中删除模块

来自分类Dev

如何使用VBA创建空白的MS Access数据库?

来自分类Dev

MS Access VBA与AbsolutePosition一起使用

来自分类Dev

如何使用VBA创建空白的MS Access数据库?

来自分类Dev

如何使用VBA在MS Access中添加新记录?

来自分类Dev

在MS Access中使用Excel VBA进行SQL删除

来自分类Dev

MS Access:使用VBA进行SQL插入的日期格式

来自分类Dev

使用vba将MS Access查询输出到Excel

来自分类Dev

使用MS Access在Excel VBA中运行代码

来自分类Dev

MS Access 使用 VBA 对表的列进行排序

来自分类Dev

从 MS Access VBA 使用 Shape.DrawSpline 方法 (Visio)

来自分类Dev

使用 MS Access VBA 更改标签的默认标题

来自分类Dev

MS Access 使用 vba 复制记录集

来自分类Dev

在 MS Access 中使用 VBA 查询转置表

来自分类Dev

MS Outlook会干扰Access vba过程

来自分类Dev

如何从MS Access 2003 VBA处理MS Excel分页符

来自分类Dev

如何使用MS Access中触发的VBA更改MS Word文档中形状的颜色?

来自分类Dev

使用 MS Outlook 打开 MS Access 和 Fire Macro

来自分类Dev

如何使用Access VBA定义要从Excel导出到MS Access表的列数?

来自分类Dev

使用Access VBA遍历表

来自分类Dev

MS Access VBA IF()

来自分类Dev

如何使用VBA在MS Outlook中获取规则的文本值?

来自分类Dev

如何使用VBA for MS Access在预先存在的表中创建字段?

Related 相关文章

热门标签

归档