DoCmd.SendObject 方法 (Access)
在 Visual Basic 中,SendObject 方法执行 SendObject 操作。
语法
表达式。SendObject (ObjectType、 ObjectName、 OutputFormat、 To、 Cc、 密件抄送、 主题、 MessageText、 EditMessage、 TemplateFile)
expression:表示 DoCmd 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
ObjectType | 可选 | AcSendObjectType | AcSendObjectType 常量,该常量指定要发送的对象的类型。 |
ObjectName | 可选 | Variant | 所选类型的 ObjectType参数的对象的有效名称的字符串表达式。 若要在邮件中添加活动对象,请使用 ObjectType 参数指定对象的类型,并将此参数留空。 如果将 ObjectType 和 ObjectName 参数同时留空(ObjectType 参数被认定为采用默认常量 acSendNoObject),那么 Microsoft Access 会向电子邮件应用发送不含数据库对象的邮件。 如果在库数据库中运行包含 SendObject 方法的 Visual Basic 代码,则 Access 首先在库数据库中查找具有此名称的对象,然后在当前数据库中查找。 |
OutputFormat | 可选 | Variant | 指定发送对象所用格式的常量。 可能的值包括 acFormatHTML、acFormatRTF、acFormatSNP、acFormatTXT、acFormatXLS、acFormatXLSB、acFormatXLSX、acFormatXPS 和 acFormatPDF。 |
"自" | 可选 | Variant | 字符串表达式,列出要在邮件的“收件人”行中添加的收件人姓名。 使用分号 (;) ,或在 Windows 控制面板“区域设置属性”对话框的“编号”选项卡上设置列表分隔符,分隔在此参数和抄送和密件抄送参数中指定的收件人姓名。 如果邮件应用无法识别收件人姓名,则不会发送邮件,并显示错误消息。 如果将此参数留空,Microsoft Access 会提示输入收件人姓名。 |
Cc | 可选 | Variant | 字符串表达式,列出名称要放在邮件“抄送”行中的收件人。 如果将此参数留空,邮件中的“抄送”行为空。 |
Bcc | 可选 | Variant | 字符串表达式,列出名称要放在邮件“密件抄送”行中的收件人。 如果将此参数留空,邮件中的“密件抄送”行为空。 |
Subject | 可选 | Variant | 一个字符串表达式,其中包含要在邮件中的 “主题” 行上放置的文本。 如果将此参数留空,邮件中的“主题”行为空。 |
MessageText | 可选 | Variant | 一个字符串表达式,其中包含要包含在邮件正文中的文本(在 对象之后)。 如果将该参数保留为空,则对象是邮件正文中包含的全部内容。 |
EditMessage | 可选 | Variant | 使用 True (1) 在加载邮件后立即打开电子邮件应用程序,以便可以编辑邮件。 使用 False (0) 将不进行编辑就发送邮件。 如果将该参数保留为空,将采用默认值 (True)。 |
TemplateFile | 可选 | Variant | 一个字符串表达式,它是要用作 HTML 文件模板的文件的完整名称(包括路径)。 |
备注
使用 SendObject 操作在电子邮件中包含指定的 Microsoft Access 数据表、表单、报表或模块,可在其中查看和转发。 在 Microsoft Outlook、Microsoft Exchange 或其他使用邮件应用程序编程接口 (MAPI) 的电子邮件应用程序中,可以在邮件中包括格式为 Microsoft Excel 2000 (*.xls)、MS-DOS 文本 (*.txt)、RTF (*.rtf) 或 HTML (*.html) 的对象。
使用 SendObject 操作将数据库对象添加到邮件时,下列规则适用:
可以发送表、查询和窗体数据表。 在所包括的对象中,数据表中的所有字段的外观都将与它们在 Access 中的相同,只有包含 OLE 对象的字段例外。 这些字段的列将包括在对象中,但字段是空的。
对于绑定到“ 是/否 ”字段 (切换按钮、选项按钮或复选框) 的控件,输出文件显示值 1 (“是”) 或 0 (No) 。
对于绑定到“超链接”字段的文本框,输出文件将显示所有输出格式的超链接,但 MS-DOS 文本除外(在这种情况下,超链接只显示为常规文本)。
如果发送表单视图中的表单,添加的对象始终包含表单的数据表视图。
如果发送报表,对象中只包含文本框(.xls 文件)或文本框和标签(.rtf、.txt 和 .html 文件)控件。 其他所有控件都会被忽略。 页眉和页脚信息也不会包括在其中。 唯一的例外是,当发送 Excel 格式的报表时,组页脚中的文本框将被包括在对象中,但该文本框包含的表达式中要有 Sum 函数。 页眉或页脚中的其他控件(以及除了 "Sum" 以外的其他聚合函数)将不会包括在对象中。
子报表将包括在对象中。 当输出到 .asp 时将包括子窗体,但只有在作为窗体(而不是数据表)输出时才包括。
发送 HTML 格式的数据表、窗体或数据访问页时,将创建一个 .html 文件。 发送 HTML 格式的报表时,将为报表中的每一页创建一个 .html 文件。
模块只能以 MS-DOS 文本格式发送,因此,如果为 ObjectType 参数指定 acSendModule,还必须为 OutputFormat 参数指定 acFormatTXT。
注意
只有在安装加载项之后,才可以通过 2007 Microsoft Office system 程序将其另存为 PDF 或 XPS 文件。 有关详细信息,请参阅 2007 Microsoft Office 加载项:Microsoft Save as PDF or XPS。
示例
下面的代码示例在 Microsoft Excel 格式的邮件中包含 Employees 表,并在邮件中指定 收件人、 抄送和 主题 行。 邮件会立即发送,而不进行编辑。
DoCmd.SendObject acSendTable, "Employees", acFormatXLS, _
"Nancy Davolio; Andrew Fuller", "Joan Weber", , _
"Current Spreadsheet of Employees", , False
下面的示例展示了如何使用 Microsoft Outlook 创建电子邮件,并将它显示给用户。
Public Function CreateEmailWithOutlook( _
MessageTo As String, _
Subject As String, _
MessageBody As String)
' Define app variable and get Outlook using the "New" keyword
Dim olApp As New Outlook.Application
Dim olEmail As Outlook.MailItem ' An Outlook Mail item
' Create a new email object
Set olEmail = olApp.CreateItem(olMailItem)
' Add the To/Subject/Body to the message and display the message
With olEmail
.To = MessageTo
.Subject = Subject
.Body = MessageBody
.Display ' To show the email message to the user
End With
End Function
下面的示例演示如何使用 Microsoft Outlook 创建一封电子邮件并进行发送,无需在发送中向用户显示该电子邮件。
Public Function SendEmailWithOutlook( _
MessageTo As String, _
Subject As String, _
MessageBody As String)
' Define app variable and get Outlook using the "New" keyword
Dim olApp As New Outlook.Application
Dim olEmail As Outlook.MailItem ' An Outlook Mail item
' Create a new email object
Set olEmail = olApp.CreateItem(olMailItem)
' Add the To/Subject/Body to the message and display the message
With olEmail
.To = MessageTo
.Subject = Subject
.Body = MessageBody
.Send ' Send the message immediately
End With
End Function
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。