Compartilhar via


Método DoCmd.SendObject (Access)

O método SendObject executa a ação SendObject no Visual Basic.

Sintaxe

expressão. SendObject (ObjectType, ObjectName, OutputFormat, To, Cc, Bcc, Subject, MessageText, EditMessage, TemplateFile)

expression Uma variável que representa um objeto DoCmd.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
ObjectType Optional AcSendObjectType Uma constante AcSendObjectType que especifica o tipo de objeto a ser enviado.
ObjectName Opcional Variantes Uma expressão de cadeia de caracteres que é o nome válido de um objeto do tipo selecionado com o argumento ObjectType. Se você quiser incluir o objeto ativo na mensagem de email, especifique o tipo de objeto com o argumento ObjectType e deixe esse argumento em branco. Se você deixar os argumentos ObjectType e ObjectName em branco (a constante padrão, acSendNoObject, é suposta para o argumento ObjectType), o Microsoft Access envia uma mensagem para o aplicativo de email sem um objeto de banco de dados incluídos.

Se você executar o código Visual Basic que contém o método SendObject em um banco de dados de biblioteca, o Access procurará o objeto com esse nome primeiro no banco de dados da biblioteca e, em seguida, no banco de dados atual.
OutputFormat Optional Variant Uma constante que especifica o formato no qual enviar o objeto. Os valores possíveis incluem acFormatHTML, acFormatRTF, acFormatSNP, acFormatTXT, acFormatXLS, acFormatXLSB, acFormatXLSX, acFormatXPS e acFormatPDF.
To Opcional Variant Uma expressão de cadeia de caracteres que lista os destinatários cujos nomes você deseja colocar na linha Para da mensagem de email. Separe os nomes de destinatário especificados neste argumento e nos argumentos Cc e Bcc com um ponto e vírgula (;) ou com o separador de lista definido na guia Número da caixa de diálogo Propriedades de Configurações Regionais no Windows Painel de Controle. Se os nomes dos destinatários não forem reconhecidos pelo aplicativo de email, a mensagem não será enviada e ocorrerá um erro. Se você deixar esse argumento em branco, o Microsoft Access solicitará os destinatários.
Cc Opcional Variantes Uma expressão de cadeia de caracteres que lista os destinatários cujos nomes você deseja colocar na linha Cc da mensagem de email. Se você deixar esse argumento em branco, a linha Cc da mensagem de email ficará em branco.
Bcc Opcional Variantes Uma expressão de cadeia de caracteres que lista os destinatários cujos nomes você deseja colocar na linha Cco da mensagem de email. Se você deixar esse argumento em branco, a linha Cco da mensagem de email ficará em branco.
Subject Opcional Variantes Uma expressão de cadeia de caracteres que contém o texto que você deseja colocar na linha Assunto na mensagem de email. Se você deixar esse argumento em branco, a linha Assunto da mensagem de email ficará em branco.
MessageText Opcional Variantes Uma expressão de cadeia de caracteres que contém o texto que você deseja incluir no corpo da mensagem de email, após o objeto. Se você deixar esse argumento em branco, o objeto será a única coisa incluída no corpo da mensagem de email.
EditMessage Opcional Variantes Use True (1) para abrir o aplicativo de email eletrônico imediatamente com a mensagem carregada, para que a mensagem possa ser editada. Use False (0) para enviar a mensagem sem editá-la. Se você deixar esse argumento em branco, o padrão ( True) será suposto.
TemplateFile Opcional Variantes Uma expressão de cadeia de caracteres que é o nome completo, incluindo o caminho, do arquivo que você deseja usar como modelo para um arquivo HTML.

Comentários

Use a ação SendObject para incluir a folha de dados, formulário, relatório ou módulo do Microsoft Access especificado em uma mensagem de email eletrônico, em que ela pode ser exibida e encaminhada. Você pode incluir objetos no formato do Microsoft Excel 2000 (*.xls), de texto MS-DOS (*.txt), rich text (.rtf) ou HTML (*.html) em mensagens para o Microsoft Outlook, o Microsoft Exchange ou outro aplicativo de email eletrônico que use MAPI (Mail Applications Programming Interface).

As seguintes regras se aplicam quando você usa a ação SendObject para incluir um objeto de banco de dados em uma mensagem de email:

  • Você pode enviar uma tabela, uma consulta e folhas de dados de formulário. No objeto incluído, todos os campos da folha de dados mantêm a mesma aparência do Access, exceto os campos que contêm objetos OLE. As colunas desses campos estão incluídas no objeto, mas os campos estão em branco.

  • Para um controle associado a um campo Sim/Não (um botão de alternância, botão de opção ou caixa de seleção), o arquivo de saída exibe o valor 1 (Sim) ou 0 (Não).

  • Para uma caixa de texto associada a um campo Hiperlink, o arquivo de saída exibe o hiperlink para todos os formatos de saída, exceto texto MS-DOS (nesse caso, o hiperlink é simplesmente exibido como texto normal).

  • Se você enviar um formulário no modo Formulário, o objeto incluído sempre conterá a exibição Folha de Dados do formulário.

  • Se você enviar um relatório, os únicos controles incluídos no objeto serão as caixas de texto (para os arquivos .xls) ou as caixas de texto e os rótulos (para os arquivos .html, .txt e .rtf). Todos os outros controles são ignorados. As informações de cabeçalho e rodapé também não serão incluídas. A única exceção é que, quando você envia um relatório no formato Excel, uma caixa de texto em um rodapé de grupo, contendo uma expressão com a função Soma, é incluída no objeto. Nenhum outro controle em um cabeçalho ou em um rodapé (e nenhuma outra função de agregação além de Soma) será incluído no objeto.

  • Os sub-relatórios são incluídos no objeto. Os subformulários são incluídos na saída para .asp, porém apenas como um formulário (não como uma folha de dados).

  • Quando você envia uma folha de dados, um formulário ou uma página de acesso a dados no formato HTML, um arquivo .html é criado. Quando enviar um relatório no formato HTML, será criado um arquivo .html para cada página do relatório.

Os módulos só podem ser enviados no formato de texto MS-DOS e, portanto, se você especificar acSendModule para o argumento ObjectType, deverá especificar acFormatTXT para o argumento OutputFormat.

Observação

Você pode salvar como arquivo PDF ou XPS de um programa de sistema do Microsoft Office 2007 somente depois de instalar um suplemento. Para saber mais, confira Suplemento do 2007 Microsoft Office: salvar como PDF ou XPS da Microsoft.

Exemplo

O exemplo de código a seguir inclui a tabela Funcionários em uma mensagem de email no formato do Microsoft Excel e especifica linhas To, Cc e Subject na mensagem de email. A mensagem de email é enviada imediatamente, sem edição.

DoCmd.SendObject acSendTable, "Employees", acFormatXLS, _ 
    "Nancy Davolio; Andrew Fuller", "Joan Weber", , _ 
    "Current Spreadsheet of Employees", , False

O exemplo a seguir mostra como criar uma mensagem de email com o Microsoft Outlook e como exibi-la para o usuário.

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

O exemplo a seguir mostra como criar uma mensagem de email com o Microsoft Outlook e enviá-la sem exibi-la para o usuário.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.