DoCmd.SendObject-Methode (Access)

Mit der SendObject-Methode wird die SendObject-Aktion in Visual Basic ausgeführt.

Syntax

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

expression Eine Variable, die ein DoCmd-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
ObjectType Optional AcSendObjectType Eine AcSendObjectType -Konstante, die den Typ des zu sendenden Objekts angibt.
ObjectName Optional Variant Ein Zeichenfolgenausdruck, der dem gültigen Namen eines Objekts des Typs entspricht, der vom Argument ObjectType ausgewählt wurde. Wenn Sie das aktive Objekt in eine E-Mail-Nachricht einschließen möchten, müssen Sie den Typ des Objekts mithilfe des Arguments ObjectType angeben; für dieses Argument geben Sie dann keinen Wert an. Wenn Sie für das Argument ObjectType als auch für das Argument ObjectName keinen Wert angeben, wird von Microsoft Access eine Nachricht an die E-Mail-Anwendung gesendet, ohne ein Datenbankobjekt in die Nachricht einzuschließen (in diesem Fall wird für das Argument ObjectType die acSendNoObject -Standardkonstante verwendet). Wenn Sie Visual Basic-Code, der die SendObject -Methode enthält, in einer Bibliotheksdatenbank ausführen, wird in Microsoft Access das Objekt mit diesem Namen zuerst in der Bibliotheksdatenbank und dann in der aktuellen Datenbank gesucht.
OutputFormat Optional Variant Eine Konstante, die das Format angibt, in dem das Objekt gesendet werden soll. Mögliche Werte sind acFormatHTML, acFormatRTF, acFormatSNP, acFormatTXT, acFormatXLS, acFormatXLSB, acFormatXLSX, acFormatXPS und acFormatPDF.
To Optional Variant Ein Zeichenfolgenausdruck, der die Empfänger auflistet, deren Namen in der E-Mail-Nachricht in der Zeile „An“ stehen sollen. Trennen Sie die Namen der Empfänger, die Sie in diesem Argument (und in den Argumenten Cc und Bcc angeben, durch ein Semikolon (;) oder mit dem Listentrennzeichen, das in der Systemsteuerung von Windows im Dialogfeld Regionale Einstellungen auf der Registerkarte Zahl festgelegt ist. Wenn die Empfängernamen von der E-Mail-Anwendung nicht erkannt werden, wird die Nachricht nicht gesendet und ein Fehler tritt auf. Wenn Sie dieses Argument leer lassen, fragt Microsoft Access nach den Empfängern.
Cc Optional Variant Ein Zeichenfolgenausdruck, der die Empfänger auflistet, deren Namen in die Cc-Zeile der E-Mail-Nachricht aufgenommen werden sollen. Wenn Sie für dieses Argument keinen Wert angeben, ist die Cc-Zeile der E-Mail-Nachricht leer.
Bcc Optional Variant Ein Zeichenfolgenausdruck, der die Empfänger auflistet, deren Namen in die Bcc-Zeile der E-Mail-Nachricht aufgenommen werden sollen. Wenn Sie für dieses Argument keinen Wert angeben, ist die Bcc-Zeile der E-Mail-Nachricht leer.
Subject Optional Variant Ein Zeichenfolgenausdruck, der den Text enthält, der in die Zeile Betreff der E-Mail-Nachricht aufgenommen werden soll. Wenn Sie für dieses Argument keinen Wert angeben, ist die Zeile Betreff der E-Mail-Nachricht leer.
MessageText Optional Variant Ein Zeichenfolgenausdruck, der den Text enthält, den Sie nach dem Objekt in den Nachrichtentext der E-Mail-Nachricht aufnehmen möchten. Wenn Sie für dieses Argument keinen Wert angeben, wird nur das Objekt, jedoch kein Text in die E-Mail-Nachricht eingeschlossen.
EditMessage Optional Variant Verwenden Sie True (-1), wenn die E-Mail-Anwendung sofort zusammen mit der geladenen Nachricht geöffnet werden soll, sodass die Nachricht bearbeitet werden kann. Verwenden Sie False (0), um die Nachricht ohne vorherige Bearbeitung zu senden. Wenn Sie für dieses Argument keinen Wert angeben, wird der Standardwert ( True ) verwendet.
TemplateFile Optional Variant Ein Zeichenfolgenausdruck, der den vollständigen Namen und Pfad der Datei angibt, die Sie als Vorlage für eine HTML-Datei verwenden möchten.

Bemerkungen

Sie können die SendObject-Aktion verwenden, um das angegebene Datenblatt, das angegebene Formular, den angegebenen Bericht oder das angegebene Modul in eine E-Mail-Nachricht einzuschließen, wo sie angezeigt und weitergeleitet werden kann. Sie können Objekte im Microsoft Excel 2000- (.xls), MS-DOS-Text- (.txt), Rich-Text- (.rtf) oder HTML-Format (.html) in Nachrichten von Microsoft Outlook, Microsoft Exchange oder einer anderen E-Mail-Anwendung einschließen, die von der MAPI (Mail Applications Programming Interface) verwendet wird.

Folgende Regeln gelten, wenn Sie die SendObject-Aktion verwenden, um ein Datenbankobjekt in eine E-Mail-Nachricht einzuschließen:

  • Sie können Tabellen-, Abfrage- und Formulardatenblätter senden. Im verwendeten Objekt sehen alle Felder im Datenblatt so aus wie in Access, mit Ausnahme der Felder, die OLE-Objekte enthalten. Die Spalten für diese Felder sind im Objekt eingeschlossen, die Felder sind jedoch leer.

  • Für ein Steuerelement, das an ein Ja/Nein-Feld (eine Umschaltfläche, eine Optionsschaltfläche oder ein Kontrollkästchen) gebunden ist, wird in der Ausgabedatei der Wert "–1" (Ja) oder "0" (Nein) angezeigt.

  • Für ein Textfeld, das an das Feld Hyperlink gebunden ist, wird in der Ausgabedatei der Hyperlink für alle Ausgabeformate mit Ausnahme von MS-DOS-Text angezeigt (in diesem Fall wird der Hyperlink nur als normaler Text angezeigt).

  • Wenn Sie ein Formular in der Formularansicht senden, enthält das eingeschlossene Objekt immer die Datenblattansicht des Objekts.

  • Wenn Sie einen Bericht senden, sind die einzigen Steuerelemente, die im Objekt eingeschlossen sind, Textfelder (für XLS-Dateien) oder Textfelder und Beschriftungen (für RTF-, TXT- und HTML-Dateien). Alle anderen Steuerelemente werden ignoriert. Die Kopf- und Fußzeileninformationen sind ebenfalls nicht eingeschlossen. Die einzige Ausnahme hierzu ist: Wenn Sie einen Bericht im Excel-Format senden, ist im Objekt ein Textfeld in einer Gruppenfußzeile eingeschlossen, das einen Ausdruck mit der Sum-Funktion enthält. In einer Kopf- oder Fußzeile ist kein anderes Steuerelement (und keine andere Aggregatfunktion als Sum) im Objekt eingeschlossen.

  • Unterberichte sind im Objekt eingeschlossen. Unterformulare sind eingeschlossen, wenn eine Ausgabe in ASP erfolgt, aber nur bei Ausgabe als Formular (nicht als Datenblatt).

  • Wenn Sie ein Datenblatt, ein Formular oder eine Datenzugriffsseite im HTML-Format senden, wird eine HTML-Datei erstellt. Wenn Sie einen Bericht im HTML-Format senden, wird für jede Seite im Bericht eine HTML-Datei erstellt.

Module können nur im MS-DOS-Textformat ausgegeben werden. Wenn Sie also für das Argument ObjectType den Wert acSendModule angeben, müssen Sie für das Argument OutputFormat den Wert acFormatTXT angeben.

Hinweis

Sie können in einem 2007 Microsoft Office System-Programm nur als PDF- oder XPS-Datei speichern, nachdem Sie ein Add-In installiert haben. Suchen Sie auf der Office-Website nach "Aktivieren der Unterstützung für andere Dateiformate wie PDF und XPS", um weitere Informationen zu finden.

Der Link stammt von: Symbol für Communitymitglied Luke Chung, FMS, Inc.

Der Link stammt von: Symbol für Communitymitglied The UtterAccess Community

Beispiel

Dieser Beispielcode nimmt die Employees-Tabelle im Microsoft Excel-Format in eine E-Mail-Nachricht auf und gibt die Zeilen An, Cc und Betreff der Nachricht an. Die Nachricht wird sofort ohne vorherige Bearbeitung gesendet.

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

Im folgenden Beispiel wird gezeigt, wie eine E-Mail mit Microsoft Outlook erstellt und dem Benutzer angezeigt wird.

**Der Beispielcode stammt von: **Microsoft Access 2010 Programmer's Reference

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 olMailItem As Outlook.MailItem  ' An Outlook Mail item
 
    ' Create a new email object
    Set olMailItem = olApp.CreateItem(olMailItem)

    ' Add the To/Subject/Body to the message and display the message
    With olMailItem
        .To = MessageTo
        .Subject = Subject
        .Body = MessageBody
        .Display    ' To show the email message to the user
    End With

    ' Release all object variables
    Set olMailItem = Nothing
    Set olApp = Nothing

End Function

Im folgenden Beispiel wird gezeigt, wie eine E-Mail mit Microsoft Outlook erstellt und gesendet wird, ohne dass die E-Mail dem Benutzer angezeigt wird.

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 olMailItem As Outlook.MailItem  ' An Outlook Mail item
 
    ' Create a new email object
    Set olMailItem = olApp.CreateItem(olMailItem)

    ' Add the To/Subject/Body to the message and display the message
    With olMailItem
        .To = MessageTo
        .Subject = Subject
        .Body = MessageBody
        .Send       ' Send the message immediately
    End With

    ' Release all object variables
    Set olMailItem = Nothing
    Set olApp = Nothing

End Function

Informationen zu den Mitwirkenden

Luke Chung ist Gründer und President von FMS, Inc., einem führenden Anbieter benutzerdefinierter Datenbanklösungen und Entwicklertools.

Wrox Press wird getragen von der Philosophie "von Programmierern für Programmierer". Wrox-Bücher wurden von Programmierern für Programmierer verfasst, und die Marke Wrox steht für intelligente Lösungen für praktische Programmierprobleme.

UtterAccess ist das führende Microsoft Access-Wiki und -Hilfeforum. Zum Beitreten hier klicken.

Siehe auch

DoCmd-Objekt