Метод 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 и обратная связь.