共用方式為


DoCmd.SendObject 方法 (存取)

SendObject 方法會在 Visual Basic 中執行 SendObject 動作。

語法

表達。SendObject (ObjectTypeObjectNameOutputFormatToCcBccSubjectMessageTextEditMessageTemplateFile)

expression 代表 DoCmd 物件的變數。

參數

名稱 必要/選用 資料類型 描述
ObjectType Optional AcSendObjectType AcSendObjectType 常數,可指定要傳送的物件類型。
ObjectName Optional Variant 是有效的類型 ObjectType 引數所選取的物件名稱的字串運算式。 如果您想要在電子郵件訊息中包含作用中的物件、 ObjectType引數指定物件的類型並將此引數保留空白。 如果您將 ObjectTypeObjectName引數保留空白 (預設常數 acSendNoObject ,假設 ObjectType引數),Microsoft Access 會將郵件傳送至不包含在內的 database 物件的電子郵件應用程式。

如果您在文件庫資料庫中執行包含 SendObject 方法的 Visual Basic 程式碼,Access 會先在文件庫資料庫中尋找具有此名稱的物件,然後在目前的資料庫中尋找具有此名稱的物件。
OutputFormat 選用 Variant 指定傳送物件格式的常數。 可能的值包括 acFormatHTMLacFormatRTFacFormatSNPacFormatTXTacFormatXLSacFormatXLSBacFormatXLSXacFormatXPSacFormatPDF
字串運算式,列出您要將其名稱放在郵件訊息中 [收件者] 行的收件者。若要區隔您在此引數以及 cc 與 bcc 引數中所指定的收件者名稱,請使用分號 (;),或是在 Windows [控制台] 的 [地區設定內容] 對話方塊中, [數字] 索引標籤下所指定的清單分隔符號。如果郵件應用程式無法識別收件者名稱,則不會傳送訊息而且會發生錯誤。如果您讓此引數保持空白,Microsoft Access 便會提示您輸入收件者。 選用 若要區隔您在此引數以及 cc 與 bcc 引數中所指定的收件者名稱,請使用分號 (;),或是在 Windows [控制台] 的 [地區設定內容] 對話方塊中, [數字] 索引標籤下所指定的清單分隔符號。 字串運算式,列出您要將其名稱放在郵件訊息中 [收件者] 行的收件者。 在此引數中,以及 [抄送] 和 [密件副本] 引數中指定的收件者名稱,請使用分號 (;) ,或在 Windows 控制台 的 [區域設定屬性] 對話方塊的 [數字] 索引標籤上設定的清單分隔符號。 如果郵件應用程式無法識別收件者名稱,則不會傳送訊息而且會發生錯誤。 如果您讓此引數保持空白,Microsoft Access 便會提示您輸入收件者。
列出的收件者您想要放在電子郵件訊息 [副本]行名稱的字串運算式。如果此引數保留空白,是空白的電子郵件訊息中的 [ 副本]行。 選用 如果此引數保留空白,是空白的電子郵件訊息中的 [ 副本] 行。 字串運算式,列出您要將其名稱放在郵件訊息中 Cc 行的收件者。 如果將此引數保留空白,郵件的 [副本] 行亦將空白。
列出的收件者您想要放在電子郵件訊息 [密件副本]行名稱的字串運算式。如果此引數保留空白,郵件訊息 [密件副本]行是空白的。 選用 如果此引數保留空白,郵件訊息 [密件副本] 行是空白的。 字串運算式,列出您要將其名稱放在郵件訊息中密 件副本 行的收件者。 如果將此引數保留空白,郵件的 [密件副本] 行亦將空白。
您要放在郵件 主旨行包含文字字串運算式。如果此引數保留空白,是空白的 主旨行中的郵件。 選用 Variant 字串表示式,其中包含您要放在郵件訊息中 「主旨」 行的文字。 如果將此引數保留空白,郵件的 [主旨] 行亦將空白。
訊息文字 字串運算式,包含您要放在郵件訊息本文中位於物件後面的文字。 Variant 字串表示式,包含您要併入郵件訊息內文中的文字,在物件之後。 如果您讓此引數保持空白,郵件訊息本文中便只包含物件。
編輯訊息 使用則為 True (- 1) 開啟的電子郵件應用程式立即訊息載入,因此可以編輯郵件。 Variant 使用 True (1) 在載入郵件的情況下立即打開電子郵件應用程序,以便可以編輯郵件。 如果使用 False (0),則不編輯訊息而直接傳送。 如果您讓此引數保持空白,則假設為預設值 (True)。
TemplateFile Optional Variant 字串運算式,是您要用作 HTML 檔案範本之檔案的完整名稱,包括路徑。

註解

使用 SendObject 動作,將指定的 Microsoft Access 資料工作表、表單、報表或模組包含在電子郵件訊息中,以便檢視和轉寄。 您可以在 Microsoft Outlook、Microsoft Exchange 或其他使用 Mail Applications Programming Interface (MAPI) 的電子郵件應用程式的郵件中,包含 Microsoft Excel 2000 (*.xls)、MS-DOS 文字 (*.txt)、RTF (*.rtf) 或 HTML (*.html) 格式的物件。

當您使用 SendObject 巨集指令在郵件中包含資料庫物件時,適用下列規則:

  • 您可以傳送資料表、查詢和表單資料表。 在包含的物件中,資料工作表中的所有欄位看起來都與 Access 中的欄位相同,但包含 OLE 物件的欄位除外。 這些欄位的欄包含在物件中,但欄位是空白的。

  • 對於繫結至 [是/否 ] 欄位 (切換按鈕、選項按鈕或核取方塊) 的控制項,輸出檔案會顯示值 1 ([是]) 或 0 ([否]) 。

  • 略過所有其他控制項。

  • 頁首及頁尾資訊也是不包含在內。

  • 如果您傳送報告,物件中包含的唯一控制項是 (.xls 檔案) 的文字方塊,或 (.rtf、.txt 和 .html 檔案) 的文字方塊和標籤。 所有其他控制項都會被忽略。 頁首和頁尾資訊也不包括在內。 唯一的例外是,當您以 Excel 格式傳送報表時,群組頁尾中的文字方塊會包含在物件中,其中包含具有 Sum 函數的運算式。 頁首或頁尾 (中沒有其他控制項,物件中不包含 Sum) 以外的彙總函式。

  • 物件中會包含子報表。 輸出到 .asp 時,則會包含子表單,不過只有在輸出為表單 (而非資料工作表) 時才會如此。

  • [!注意事項] 只有在您安裝增益集之後,才可以從 2007 Microsoft Office system 程式另存為 PDF 或 XPS 檔案。 如需詳細資訊,請在 Office 網站上搜尋「啟用其他檔案格式的支援,如 PDF 和 XPS」。

模組只能以 MS-DOS 文字格式傳送,因此如果您為 ObjectType 引數指定 acSendModule,則必須為 OutputFormat 引數指定 acFormatTXT

注意事項

只有在安裝增益集之後,才可以透過 2007 Microsoft Office 系統程式儲存為 PDF 或 XPS 檔案。 如需詳細資訊,請參閱 2007 Microsoft Office 增益集:Microsoft 另存 PDF 檔或 XPS 檔。

範例

下列程式碼範例在 Microsoft Excel 格式的郵件訊息中包含 Employees 資料表,並在郵件訊息中指定 [收件者]、[ 抄送] 和 [主旨] 行。 沒有編輯立即,傳送電子郵件訊息。

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 支援與意見反應