共用方式為


DataRecordsets.Add 方法 (Visio)

藉由連線至 OLEDB 或 ODBC 資料來源的資料,將 DataRecordset 物件新增至 DataRecordsets 集合。

注意事項

This Visio object or member is available only to licensed users of Visio Professional 2013.

語法

運算式新增 (ConnectionIDOrStringCommandStringAddOptionsName)

表達 代表 DataRecordsets 物件的 變數。

參數

名稱 必要/選用 資料類型 描述
ConnectionIDOrString 必要 Variant 現有 DataConnection 物件的識別碼,或指定新資料來源連接的連接字串。
CommandString 必要 String 此查詢字串用來指定資料庫資料表或 Excel 工作表,以及該資料表或工作表內包含您要查詢之資料的欄位 (資料欄)。
AddOptions 必要 Long 決定要加入之資料記錄集屬性的選項。 VisDataRecordsetAddOptions中一或多個列舉值的組合。 如需詳細資訊,請參閱<備註>。
名稱 選用 字串 為新增的 DataRecordset 物件指定顯示名稱。

傳回值

DataRecordset

註解

您可以決定要傳遞至 ConnectionIDOrString 參數的適當連接字串,方法是先在 Visio 使用者介面 (UI 中使用 [ 資料選取器 精靈],) 建立相同的連接、在執行精靈時錄製巨集,然後從宏程式碼複製連接字串。

重複使用現有資料連線的簡單方式是傳遞 ConnectionIDOrString 參數之現有DataRecordset物件的DataConnection屬性值。 使用下列語法:

NewDataRecordset  = DataRecordsets.Add(ExistingDataRecordset .DataConnection.ID, CommandString, AddOptions, Name)

如果將目前有一個或多個其他資料記錄集正在使用之現有 DataConnection 物件的識別碼傳送給 ConnectionIDOrString 參數,則所有資料記錄集都會變成「交易的群組記錄集」。 每次執行重新整理資料作業時,都會重新整理該群組中的所有資料記錄集。

AddOptions 參數可以是 VisDataRecordsetAddOptions 列舉中下列一個或多個值的組合,而此列舉會在 Visio 型態程式庫中宣告。 預設值為零 (0),指定未設定任何選項。

常數 描述
visDataRecordsetNoExternalDataUI 1 會防止新資料錄集中的資料顯示在 [外部資料] 視窗中。
visDataRecordsetNoRefreshUI 2 會防止資料錄集顯示在 [重新整理資料] 對話方塊中。
visDataRecordsetNoAdvConfig 4 會防止資料記錄集顯示在 [設定重新整理] 對話方塊中。
visDataRecordsetDelayQuery 8 加入資料記錄集,但在下次呼叫 Refresh 方法之前,不會執行 CommandString 查詢。
visDataRecordsetDontCopyLinks 16 新增資料記錄集,但是當複製或剪下圖形時,不會將圖形資料連結複製到剪貼簿。

一旦指定這些值之後,在 DataRecordset 物件存在期間都不能變更。

Name 參數是選擇性字串,可讓您將顯示名稱指派給資料記錄集。 如果您指定要在 Visio UI 中顯示 [ 外部資料 ] 視窗,您針對此引數傳遞的名稱會出現在 [ 外部資料 ] 視窗的索引標籤上,該索引標籤會對應至新增的資料記錄集。

如果 Add 方法成功,它會執行下列動作:

  • 建立 DataRecordset 物件,並將 Name 參數中所指定的名稱指定給它。 如果您未指定名稱,Visio 會將資料來源資料庫資料表的名稱指派給資料記錄集。

  • 建立新或現有 DataConnection 物件與 DataRecordset 物件的關聯。

  • 開啟 Visio UI 中的 [外部資料 ] 視窗,除非已設定 visDataRecordsetNoExternalDataUI

除非您將 visDataRecordsetDelayQuery 當做 AddOptions 參數的一部分來傳送,否則 Add 方法還會執行下列動作:

  • 執行 CommandString 參數中指定的查詢字串,並擷取產生的資料。

  • 將資料來源之資料欄的資料類型對應至相等 Visio 資料類型,而篩選結果會移除因沒有相等 Visio 資料類型而無法連結至 Visio 圖形的資料來源資料欄。 特別的是,不可以匯入二進位資料或特殊的資料類型 (如 UserDefinedChapterIDispatch)。

  • 將資料列識別碼指定給資料記錄集中的每個資料列。 如需資料列識別碼的詳細資訊,請參閱 DataRecordset.GetDataRowIDs 主題。

注意事項

如果發生網路連線錯誤、網路逾時或資料庫權限錯誤,則 Add 方法會失敗並傳回例外狀況。 如果已設定 visDataRecordsetDelayQuery 選項,則在相同的情況下,Add 可能會成功新增資料記錄集,但是可能無法重新整理。

範例

下列 Microsoft Visual Basic for Applications (VBA) 巨集會顯示如何使用 Add 方法,將 Visio 繪圖連接至 ORGDATA.XLS 中的資料,此檔案是當您在預設的檔案路徑安裝 Visio 時,安裝在 C:\Program Files\Microsoft Office\OFFICE12\SAMPLES\1033\ 中的 Microsoft Office Excel 活頁簿。

在此範例中,沒有現有的資料連線,因此對於 Add 方法的第一個參數,我們會傳遞 strConnection ,即連接字串。 針對第二個參數,我們會傳遞命令字串 strCommand ,此命令字串會指示 Visio 從我們指定的工作表中選取所有資料行。 對於 Add方法的第三個參數,我們會傳遞零來指定資料記錄集的預設行為,而對於最後一個參數,我們會傳遞「組織資料」,也就是我們想要指派給資料記錄集的顯示名稱。

Public Sub AddDataRecordset_Example() 
 
    Dim strConnection As String 
    Dim strCommand As String 
    Dim strOfficePath As String 
    Dim vsoDataRecordset As Visio.DataRecordset 
 
    strOfficePath = Visio.Application.Path     
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ 
                       & "User ID=Admin;" _ 
                       & "Data Source=" + strOfficePath + "SAMPLES\1033\ORGDATA.XLS;" _ 
                       & "Mode=Read;" _ 
                       & "Extended Properties=""HDR=YES;IMEX=1;MaxScanRows=0;Excel 12.0;"";" _ 
                       & "Jet OLEDB:Engine Type=34;" 
 
    strCommand = "SELECT * FROM [Sheet1$]" 
 
    Set vsoDataRecordset = ActiveDocument.DataRecordsets.Add(strConnection, strCommand, 0, "Org Data") 
 
End Sub

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應