共用方式為


Access) (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 便會提示您輸入收件者。
列出的收件者您想要放在電子郵件訊息 [副本]行名稱的字串運算式。如果此引數保留空白,是空白的電子郵件訊息中的 [ 副本]行。 選用 如果此引數保留空白,是空白的電子郵件訊息中的 [ 副本] 行。 字串運算式,列出您要在郵件訊息的 [副本 ] 行上放置其名稱的收件者。 如果將此引數保留空白,郵件的 [副本] 行亦將空白。
列出的收件者您想要放在電子郵件訊息 [密件副本]行名稱的字串運算式。如果此引數保留空白,郵件訊息 [密件副本]行是空白的。 選用 如果此引數保留空白,郵件訊息 [密件副本] 行是空白的。 字串運算式,列出您要在郵件訊息的 密件抄 送行上放置其名稱的收件者。 如果將此引數保留空白,郵件的 [密件副本] 行亦將空白。
您要放在郵件 主旨行包含文字字串運算式。如果此引數保留空白,是空白的 主旨行中的郵件。 選用 Variant 字串運算式,包含您要放在郵件訊息中 主旨 行的文字。 如果將此引數保留空白,郵件的 [主旨] 行亦將空白。
MessageText 字串運算式,包含您要放在郵件訊息本文中位於物件後面的文字。 Variant 字串運算式,包含您想要包含在郵件訊息本文中的文字,位於 物件之後。 如果您讓此引數保持空白,郵件訊息本文中便只包含物件。
EditMessage 使用則為 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 巨集指令在郵件中包含資料庫物件時,適用下列規則:

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

  • 對於系結至 [ 是/否 ] 欄位 (切換按鈕、選項按鈕或核取方塊) 的控制項,輸出檔案會顯示值 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 支援與意見反應