Método DoCmd.SendObject (Access)

El método SendObject realiza la acción SendObject en Visual Basic.

Sintaxis

expresión. SendObject (ObjectType, ObjectName, OutputFormat, To, Cc, Bcc, Subject, MessageText, EditMessage, TemplateFile)

expresión Variable que representa un objeto DoCmd.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
ObjectType Optional AcSendObjectType Constante AcSendObjectType que especifica el tipo de objeto que se va a enviar.
ObjectName Opcional Variant Expresión de cadena que es el nombre válido de un objeto del tipo seleccionado en el argumento ObjectType. Si quiere incluir el objeto activo en el mensaje de correo electrónico, especifique el tipo del objeto con el argumento ObjectType y deje en blanco este argumento. Si deja en blanco los argumentos ObjectType y ObjectName (se usa la constante predeterminada, acSendNoObject, para el argumento ObjectType), Microsoft Access envía un mensaje a la aplicación de correo electrónico sin incluir un objeto de base de datos.

Si ejecuta código de Visual Basic que contiene el método SendObject en una base de datos de biblioteca, Access busca primero el objeto con este nombre en la base de datos de biblioteca y, a continuación, en la base de datos actual.
OutputFormat Optional Variant Constante que especifica el formato en el que enviar el objeto. Los posibles valores son: acFormatHTML, acFormatRTF, acFormatSNP, acFormatTXT, acFormatXLS, acFormatXLSB, acFormatXLSX, acFormatXPS y acFormatPDF.
Para Opcional Variant Expresión de cadena que enumera los destinatarios cuyos nombres desea insertar en la línea Para del mensaje de correo electrónico. Separe los nombres de destinatario que especifique en este argumento y en los argumentos Cc y CCO con un punto y coma (;), o con el separador de lista establecido en la pestaña Número del cuadro de diálogo Propiedades de configuración regional del Panel de control de Windows. Si los nombres de los destinatarios no se reconocen en la aplicación de correo, el mensaje no se enviará y se producirá un error. Si deja en blanco este argumento, Microsoft Access le pedirá los nombres de los destinatarios.
Cc Opcional Variant Expresión de cadena que enumera los destinatarios cuyos nombres quiere colocar en la línea CC del mensaje de correo. Si deja este argumento en blanco, la línea CC del mensaje de correo queda vacía.
Bcc Opcional Variant Expresión de cadena que enumera los destinatarios cuyos nombres quiere colocar en la línea CCO de un mensaje de correo. Si deja este argumento blanco, la línea CCO del mensaje de correo queda vacía.
Subject Opcional Variant Expresión de cadena que contiene el texto que desea colocar en la línea Asunto en el mensaje de correo. Si deja este argumento blanco, la línea Asunto del mensaje de correo queda vacía.
MessageText Opcional Variant Expresión de cadena que contiene el texto que desea incluir en el cuerpo del mensaje de correo, después del objeto . Si deja en blanco este argumento, el objeto será lo único que se incluya en el cuerpo del mensaje de correo.
EditMessage Opcional Variant Use True (1) para abrir la aplicación de correo electrónico inmediatamente con el mensaje cargado, de modo que se pueda editar el mensaje. Use False (0) para enviar el mensaje sin editarlo. Si deja este argumento en blanco, se usa el valor predeterminado (True).
TemplateFile Opcional Variant Expresión de cadena que es el nombre completo, incluida la ruta de acceso, del archivo que desea usar como plantilla para un archivo HTML.

Comentarios

Use la acción SendObject para incluir la hoja de datos, el formulario, el informe o el módulo de Microsoft Access especificados en un mensaje de correo electrónico, donde se puede ver y reenviar. Puede incluir objetos en formato de Microsoft Excel 2000 (*.xls), Texto MS-DOS (*.txt), texto enriquecido (*.rtf) o HTML (*.html) en mensajes de Microsoft Outlook, Microsoft Exchange u otra aplicación de correo electrónico que use la interfaz de programación de aplicaciones de correo (MAPI).

Se aplican las reglas siguientes cuando se usa la acción SendObject para incluir un objeto de base de datos en un mensaje de correo:

  • Puede enviar hojas de datos de tabla, consulta y formulario. En el objeto incluido, todos los campos de la hoja de datos tienen la misma apariencia que en Access, excepto los campos que contengan objetos OLE. Las columnas de estos campos se incluyen en el objeto, pero los campos están en blanco.

  • Para un control enlazado a un campo Sí/No (botón de alternancia, botón de opción o casilla), el archivo de salida muestra el valor 1 (Sí) o 0 (No).

  • Para un cuadro de texto enlazado a un campo Hipervínculo, el archivo de salida muestra el hipervínculo para todos los formatos de salida excepto texto de MS-DOS (en este caso, el hipervínculo se muestra como texto normal).

  • Si se envía un formulario en la vista Formulario, el objeto incluido siempre contiene la vista Hoja de datos del formulario.

  • Si envía un informe, los únicos controles que se incluyen en el objeto son cuadros de texto (en archivos .xls) o cuadros de texto y etiquetas (en archivos .rtf, .txt y .html). Todos los demás controles se omiten. Tampoco se incluye la información del encabezado y el pie de página. La única excepción a esto es que, al enviar un informe en formato Excel, se incluirá un cuadro de texto en un pie de grupo que contenga una expresión con la función Suma. El objeto no incluirá ningún otro control del encabezado o pie de página (ni ninguna función de agregado distinta de Suma).

  • Los subinformes se incluyen en el objeto. Los subinformes se incluyen al realizar la salida a formato .asp, pero sólo en el caso de salida como formulario (no como hoja de datos).

  • Si se envía una hoja de datos, formulario o página de acceso a datos en formato HTML, se crea un archivo .html. Si se envía un informe en formato HTML, se crea un archivo .html para cada página del informe.

Los módulos solo pueden enviarse en formato Texto MS-DOS, de tal forma que si especifica acSendModule en el argumento ObjectType, debe especificar acFormatTXT en el argumento OutputFormat.

Nota:

Puede guardar como un archivo PDF o XPS desde un programa de sistema de Microsoft Office 2007 únicamente después de instalar un complemento. Para obtener más información, vea Complemento de Microsoft Office 2007: Guardar como PDF o XPS en Microsoft.

Ejemplo:

En el ejemplo de código siguiente se incluye la tabla Employees en un mensaje de correo en formato Microsoft Excel y se especifican las líneas To, Cc y Subject en el mensaje de correo. El mensaje de correo se envía inmediatamente, sin modificar.

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

En el ejemplo siguiente se muestra cómo crear un mensaje de correo electrónico con Microsoft Outlook y mostrarlo al usuario.

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

En el ejemplo siguiente se muestra cómo crear un mensaje de correo electrónico con Microsoft Outlook y enviarlo sin mostrarlo al usuario.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.