Méthode DoCmd.SendObject (Access)

La méthode SendObject exécute l’action SendObject dans Visual Basic.

Syntaxe

expression. SendObject (ObjectType, ObjectName, OutputFormat, To, Cc, Cci, Subject, MessageText, EditMessage, TemplateFile)

expressionune variable représentant un objet DoCmd.

Paramètres

Nom Requis/Facultatif Type de données Description
ObjectType Facultatif AcSendObjectType Constante AcSendObjectType qui spécifie le type d’objet à envoyer.
ObjectName Facultatif Variant Expression chaîne qui est le nom valide d'un objet du type sélectionné par l'argument ObjectType. Si vous voulez inclure l'objet actif dans le message électronique, spécifiez le type de l'objet avec l'argument ObjectType et laissez cet argument vierge. Si vous laissez les arguments ObjectType et ObjectName vierges (la constante par défaut acSendNoObject est choisie pour l'argument ObjectType), Microsoft Access envoie à l'application de courrier électronique un message ne contenant pas d'objet de base de données.

Si vous exécutez du code Visual Basic contenant la méthode SendObject dans une base de données bibliothèque, Access recherche d’abord l’objet portant ce nom dans la base de données bibliothèque, puis dans la base de données active.
OutputFormat Facultatif Variant Constante qui indique le format dans lequel envoyer l'objet. Les valeurs possibles sont acFormatHTML, acFormatRTF, acFormatSNP, acFormatTXT, acFormatXLS, acFormatXLSB, acFormatXLSX, acFormatXPS et acFormatPDF.
Pour Facultatif Variant Expression chaîne qui contient les noms des destinataires du message, qui seront insérés sur la ligne A du message électronique. Séparez les noms de destinataires que vous spécifiez dans cet argument et dans les arguments Cc et Cci par un point-virgule (;), ou avec le séparateur de liste défini sous l’onglet Nombre de la boîte de dialogue Propriétés des paramètres régionaux dans le Panneau de configuration Windows. Si l'application de messagerie ne peut pas identifier les noms des destinataires, le message n'est pas envoyé et une erreur survient. Si vous laissez cet argument vierge, Microsoft Access vous invite à fournir les noms des destinataires.
Cc Facultatif Variant Expression de chaîne qui répertorie les destinataires dont vous voulez insérer le nom dans la ligne Cc : du message électronique. Si vous laissez cet argument vide, la ligne Cc : du message électronique reste vide.
Bcc Facultatif Variant Expression de chaîne qui répertorie les destinataires dont vous voulez insérer le nom dans la ligne Cci : du message électronique. Si vous laissez cet argument vide, la ligne Cci : du message électronique reste vide.
Subject Facultatif Variant Expression de chaîne contenant le texte que vous souhaitez placer sur la ligne Objet du message électronique. Si vous laissez cet argument vide, la ligne Objet du message électronique reste vide.
MessageText Facultatif Variant Expression de chaîne contenant le texte que vous souhaitez inclure dans le corps du message électronique, après l’objet . Si vous laissez cet argument vierge, l'objet est le seul élément qui est inséré dans le corps du message électronique.
EditMessage Facultatif Variant Utilisez True (1) pour ouvrir l’application de messagerie électronique immédiatement avec le message chargé, afin que le message puisse être modifié. Utilisez False (0) pour envoyer le message sans le modifier. Si vous laissez cet argument vide, la valeur par défaut (True) est supposée.
TemplateFile Facultatif Variant Expression de chaîne qui correspond au nom complet, y compris le chemin d’accès, du fichier que vous souhaitez utiliser comme modèle pour un fichier HTML.

Remarques

Utilisez l’action EnvoyerObject pour inclure la feuille de données, le formulaire, l’état ou le module Microsoft Access spécifié dans un message électronique, où il peut être affiché et transféré. Vous pouvez inclure des objets aux formats Microsoft Excel 2000 (*.xls), texte MS-DOS (*.txt), texte enrichi (*.rtf) ou HTML (*.html) dans des messages pour Microsoft Outlook, Microsoft Exchange ou d’autres applications de messagerie électronique utilisant l’interface de programmation d’application de messagerie MAPI.

Les règles suivantes s’appliquent lorsque vous utilisez l’action EnvoyerObject pour inclure un objet de base de données dans un message électronique :

  • Vous pouvez envoyer des feuilles de données de table, de requête et de formulaire. Dans l'objet inclus, tous les champs de la feuille de données apparaissent comme dans Access sauf ceux contenant des objets OLE. Les colonnes de ces champs sont incluses dans l'objet, mais les champs eux-mêmes sont vierges.

  • Pour un contrôle lié à un champ Oui/Non (bouton bascule, bouton d’option ou case à cocher), le fichier de sortie affiche la valeur 1 (Oui) ou 0 (Non).

  • Pour un champ de texte lié à un champ Lien hypertexte, le fichier de sortie affiche le lien hypertexte pour tous les formats de sortie, à l’exception du format Texte MS-DOS (dans ce cas, le lien hypertexte s’affiche comme du texte normal).

  • Si vous envoyez un formulaire en mode Formulaire, l'objet inclus contient la feuille de données de ce formulaire.

  • Si vous envoyez un rapport, les seuls contrôles inclus dans l’objet sont des zones de texte (pour les fichiers .xls) ou des zones de texte et des étiquettes (pour les fichiers .rtf, .txt et .html). Tous les autres contrôles sont ignorés. Les informations d’en-tête et de pied de page ne sont pas non plus incluses. La seule exception à cela est que lorsque vous envoyez un rapport au format Excel, une zone de texte dans un pied de page de groupe contenant une expression avec la fonction Somme est incluse dans l’objet . Aucun autre contrôle dans un en-tête ou un pied de page (et aucune fonction d’agrégation autre que Sum) n’est inclus dans l’objet .

  • Des sous-états sont inclus dans l'objet. Des sous-formulaires sont inclus lorsque les données sont enregistrées dans un fichier .asp, mais seulement en tant que formulaire et non en tant que feuille de données.

  • Lorsque vous envoyez une feuille de données, un formulaire ou une page d’accès aux données au format HTML, un fichier .html est créé. Lorsque vous envoyez un rapport au format HTML, un fichier .html est créé pour chaque page du rapport.

Les modules ne peuvent être envoyés qu’au format Texte MS-DOS. Dès lors, si vous spécifiez acSendModule pour l’argument ObjectType, vous devez spécifier acFormatTXT pour l’argument OutputFormat.

Remarque

Vous pouvez enregistrer un fichier au format PDF ou XPS à partir d’un programme Microsoft Office 2007 uniquement après avoir installé un complément. Pour plus d’informations, voir Complément Microsoft Office 2007 : enregistrement au format PDF ou XPS.

Exemple

L’exemple de code suivant inclut le tableau Employés dans un message électronique au format Microsoft Excel et spécifie les lignes À, Cc et Objet dans le message électronique. Celui-ci est envoyé immédiatement, sans modification.

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

L'exemple suivant montre comment créer un message électronique avec Microsoft Outlook, et l'afficher à l'utilisateur.

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

L'exemple suivant montre comment créer un message électronique avec Microsoft Outlook, et l'envoyer sans l'afficher à l'utilisateur.

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.