DataRecordsets.AddFromXML 方法 (Visio)
將 DataRecordset 物件新增至 DataRecordsets 集合,並將以 XML 字串形式提供的資料填入產生的資料記錄集。
注意事項
This Visio object or member is available only to licensed users of Visio Professional 2013.
語法
運算式。AddFromXML (XMLString、 AddOptions、 Name)
表達 會傳回 DataRecordsets 物件的 運算式。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
XMLString | 必要 | 字串 | 符合 Microsoft ActiveX Data Objects (ADO) 傳統 XML 架構的 XML 字串,描述您想要匯入的資料。 |
AddOptions | 必要 | Long | 決定要加入之資料記錄集屬性的選項。 VisDataRecordsetAddOptions中一或多個列舉值的組合。 如需詳細資訊,請參閱<備註>。 |
名稱 | 選用 | 字串 | 為新增的 DataRecordset 物件指定顯示名稱。 |
傳回值
DataRecordset
註解
將符合 ADO 傳統 XML 結構描述並且描述了您所要匯入之資料的 XML 字串傳遞給 XMLString 參數。 在本主題稍後的範例中將會示範簡單的 XML 字串。
AddOptions 參數可以是 VisDataRecordsetAddOptions 列舉中下列一個或多個值的組合 (此列舉會在 Microsoft Visio 型別程式庫中宣告)。 預設值為零 (0),指定未設定任何選項。
常數 | 值 | 描述 |
---|---|---|
visDataRecordsetNoExternalDataUI | 1 | 會防止新資料錄集中的資料顯示在 [外部資料] 視窗中。 |
visDataRecordsetNoAdvConfig | 4 | 會防止資料記錄集顯示在 [設定重新整理] 對話方塊中。 |
visDataRecordsetDontCopyLinks | 16 | 新增資料記錄集,但不會剪下或複製圖形資料連結。 |
一旦指定這些值之後,在 DataRecordset 物件存在期間都不能變更。
Name 引數是選擇性字串,可讓您將顯示名稱指派給資料記錄集。 如果您指定 [ 外部資料 ] 視窗顯示在 Visio UI 中,您針對此引數傳遞的名稱會出現在 [ 外部資料 ] 視窗的索引標籤上,該索引標籤會對應至新增的資料記錄集。
不同於使用 Add 或 AddFromConnectionFile 方法所建立的資料記錄集,使用 AddFromXML 方法所建立的資料記錄集不會與 DataConnection 物件產生關聯。
此外,對於使用 AddFromXML 方法所建立的資料記錄集,不論 DataRecordset.RefreshInterval 屬性的設定為何,Visio 都不會自動進行重新整理。 若要重新整理這類記錄集中的資料,您必須呼叫 DataRecordset.RefreshUsingXML 方法。
如果 AddFromXML 方法成功,它會執行下列動作:
建立 DataRecordset 物件並為其指定在 Name 參數中指定的名稱。 如果您未指定名稱,Visio 會將資料來源資料庫資料表的名稱指派給資料記錄集。
將資料來源之資料欄的資料類型對應至相等 Visio 資料類型,而篩選結果會移除因沒有相等 Visio 資料類型而無法連結至 Visio 圖形的資料來源資料欄。
為資料記錄集中的每一個資料列指定 Visio 資料列識別碼,除非匯入的資料中已經包含了有效的 Visio 資料列識別碼。 如需 Visio 資料列識別碼的詳細資訊,請參閱 DataRecordset.GetDataRowIDs 主題。
範例
下列 Microsoft Visual Basic for Applications (VBA) 巨集會說明如何使用 AddFromXML 方法,將 Visio 繪圖連接至 ADO XML 字串中包含的資料。
下列是 XML 字串的範例。 將此字串傳遞給 AddFromXML 方法時,會建立資料記錄集,其中包含一個名稱為 "Cities" 的資料欄,以及兩個資料列,資料列內的該資料欄中會包含城市名稱。
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='c1' rs:name='Cities'
rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row c1='Seattle' />
<z:row c1='Redmond' />
</rs:data>
</xml>
在下列範例程式碼中,會將兩個字串的名稱傳遞至 AddFromXML 方法中,一個是包含資料的 XML 字串,另一個是包含顯示名稱的字串 (此顯示名稱是要指定給新建立的資料記錄集)。
Public Sub AddFromXML_Example()
Dim strXML As String
Dim strName As String
Dim vsoDataRecordset As Visio.DataRecordset
strXML = "<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'" + Chr(10) _
& "xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'" + Chr(10) _
& "xmlns:rs='urn:schemas-microsoft-com:rowset'" + Chr(10) _
& "xmlns:z='#RowsetSchema'>" + Chr(10) _
& "<s:Schema id='RowsetSchema'>" + Chr(10) _
& "<s:ElementType name='row' content='eltOnly' rs:updatable='true'>" + Chr(10) _
& "<s:AttributeType name='c1' rs:name='Cities'" + Chr(10) _
& "rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'>" + Chr(10) _
& "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _
& "</s:AttributeType>" + Chr(10) _
& "<s:extends type='rs:rowbase'/>" + Chr(10) _
& "</s:ElementType>" + Chr(10) _
& "</s:Schema>" + Chr(10) _
& "<rs:data>" + Chr(10) _
& "<z:row c1='Seattle'/>" + Chr(10) _
& "<z:row c1='Redmond'/>" + Chr(10) _
& "</rs:data>" + Chr(10) _
& "</xml>"
strName = "City Names"
Set vsoDataRecordset = ThisDocument.DataRecordsets.AddFromXML(strXML, 0, strName)
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。