Метод DoCmd.SendObject (Access)
Метод SendObject выполняет действие SendObject в Visual Basic.
Синтаксис
expression. SendObject (ObjectType, ObjectName, OutputFormat, To, Cc, СК, Subject, MessageText, EditMessage, TemplateFile)
expression: переменная, представляющая объект DoCmd.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
ObjectType | Необязательный | AcSendObjectType | Константа AcSendObjectType , указывающая тип отправляемого объекта. |
ObjectName | Необязательный | Variant | Строковое выражение, которое является допустимым именем объекта типа, выбранного аргументом ObjectType. Если вы хотите включить активный объект в почтовое сообщение, укажите тип объекта с помощью аргумента ObjectType и оставьте этот аргумент пустым. Если оставить аргументы ObjectType и ObjectName пустыми (для аргумента ObjectType предполагается константа по умолчанию acSendNoObject), Microsoft Access отправит сообщение в приложение электронной почты без включенного объекта базы данных. При выполнении кода Visual Basic, содержащего метод SendObject в базе данных библиотеки, Access ищет объект с этим именем сначала в базе данных библиотеки, а затем в текущей базе данных. |
OutputFormat | Необязательный | Variant | Константой, указывающей формат, в котором отправляется объект. Возможные значения: acFormatHTML, acFormatRTF, acFormatSNP, acFormatTXT, acFormatXLS, acFormatXLSB, acFormatXLSX, acFormatXPS и acFormatPDF. |
Для | Необязательный | Variant | Строковое выражение, которое перечисляет получателей, имена которых нужно поместить в строку Кому в почтовом сообщении. Разделите имена получателей, указанные в этом аргументе и в аргументах Копия и СК, точкой с запятой (;)) или разделителем списка, установленным на вкладке Число диалогового окна Свойства региональных параметров в панель управления Windows. Если имена получателей не распознаны почтовым приложением, сообщение не отправляется и возникает ошибка. Если оставить этот аргумент пустым, Microsoft Access предложит ввести получателей. |
Cc | Необязательный | Variant | Строковое выражение, указывающее получателей, имена которых нужно поместить в строку Копия в почтовом сообщении. Если оставить этот аргумент пустым, строка Копия в сообщении будет пустой. |
Bcc | Необязательный | Variant | Строковое выражение, которое перечисляет получателей, имена которых нужно поместить в строку СК в почтовом сообщении. Если оставить этот аргумент пустым, строка СК в почтовом сообщении будет пустой. |
Тема | Необязательный | Variant | Строковое выражение, содержащее текст, который нужно поместить в строку Тема сообщения. Если оставить этот аргумент пустым, строка Тема в сообщении будет пустой. |
MessageText | Необязательный | Variant | Строковое выражение, содержащее текст, который необходимо включить в текст почтового сообщения после объекта . Если оставить этот аргумент пустым, объект будет включен в текст сообщения. |
EditMessage | Необязательный | Variant | Используйте значение True (1), чтобы немедленно открыть почтовое приложение с загруженным сообщением, чтобы его можно было изменить. Используйте значение False (0), чтобы отправить сообщение без редактирования. Если оставить этот аргумент пустым, предполагается значение по умолчанию (True). |
TemplateFile | Необязательный | Variant | Строковое выражение, которое является полным именем, включая путь, файла, который вы хотите использовать в качестве шаблона для HTML-файла. |
Замечания
Используйте действие SendObject, чтобы включить указанную таблицу, форму, отчет или модуль Microsoft Access в электронное сообщение, где его можно просмотреть и переслать. Объекты в формате Microsoft Excel 2000 (*.xls), ms-DOS (*.txt), формат rtf (*.rtf) или HTML (*.html) можно включать в сообщения для Microsoft Outlook, Microsoft Exchange или другое почтовое приложение, использующее интерфейс программирования почтовых приложений (MAPI).
При использовании действия SendObject для включения объекта базы данных в почтовое сообщение применяются следующие правила:
Вы можете отправлять таблицы таблиц, запросов и форм. Во включенном объекте все поля таблицы выглядят так же, как в Access, за исключением полей, содержащих объекты OLE. Столбцы для этих полей включаются в объект , но поля пусты.
Для элемента управления, привязанного к полю Да или Нет (переключатель, кнопка параметра или флажок), выходной файл отображает значение 1 (Да) или 0 (Нет).
Для текстового поля, привязанного к полю гиперссылки , выходной файл отображает гиперссылку для всех форматов вывода, кроме текста MS-DOS (в этом случае гиперссылка отображается как обычный текст).
Если форма отправляется в режиме формы, включенный объект всегда содержит представление таблицы формы.
При отправке отчета в объект включены только текстовые поля (для .xls файлов) или текстовые поля и метки (для RTF-файлов, .txt и .html файлов). Все остальные элементы управления игнорируются. Сведения о верхних и нижних колонтитулах также не включаются. Единственным исключением из этого является то, что при отправке отчета в формате Excel в объект включается текстовое поле в нижнем колонтитуле группы, содержащее выражение с функцией Sum . Никакой другой элемент управления в верхнем или нижнем колонтитуле (и агрегатная функция, кроме Sum) не включается в объект .
Вложенные отчеты включаются в объект . Вложенные формы включаются при выводе в ASP, но только при выводе в виде формы (не таблицы).
При отправке таблицы, формы или страницы доступа к данным в формате HTML создается один .html файл. При отправке отчета в формате HTML для каждой страницы отчета создается один .html файл.
Модули можно отправлять только в текстовом формате MS-DOS, поэтому если для аргумента ObjectType указать acSendModule, необходимо указать acFormatTXT для аргумента OutputFormat.
Примечание.
Вы можете сохранить файл в формате PDF или XPS из программы системы Microsoft Office 2007 только после установки надстройки. Дополнительные сведения см. на странице Надстройка 2007 Microsoft Office: сохранение в формате PDF или XPS (Майкрософт).
Пример
В следующем примере кода таблица Employees содержится в почтовом сообщении в формате Microsoft Excel, а в сообщении указаны строки "Кому", "Копия" и "Тема". Сообщение отправляется немедленно, без изменения.
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 и обратная связь.