DataRecordsets.AddFromXML メソッド (Visio)

DataRecordset コレクションに DataRecordset オブジェクトを追加し、XML 文字列の形式で提供されたデータを、結果のデータ レコードセットに格納します。

注:

この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。

構文

式。AddFromXML (XMLString, AddOptions, Name)

式DataRecordsets オブジェクトを返す式。

パラメーター

名前 必須 / オプション データ型 説明
XMLString 必須 String Microsoft ActiveX Data Objects (ADO) クラシック XML スキーマに準拠し、インポートするデータを記述する XML 文字列。
AddOptions 必須 Long 追加するデータのレコードセットのプロパティを指定するオプションです。 VisDataRecordsetAddOptions からの 1 つ以上の列挙値の組み合わせ。 詳細については、「備考」を参照してください。
名前 省略可能 String 追加する DataRecordset オブジェクトの表示名を割り当てます。

戻り値

DataRecordset

注釈

XMLString パラメーターでは、ADO の従来の XML スキーマに準拠し、インポートするデータを表す XML 文字列を渡します。 この後の例で、簡単な XML 文字列を示します。

AddOptions パラメーターは、Microsoft Visio タイプ ライブラリで宣言される VisDataRecordsetAddOptions 列挙から取得される以下の値の 1 つ以上の組み合わせになります。 既定値はゼロ (0) で、どのオプションも設定されません。

定数 値 説明
visDataRecordsetNoExternalDataUI 1 新しいデータ レコードセットのデータは [外部データ] ウィンドウに表示されません。
visDataRecordsetNoAdvConfig 4 データ レコードセットは [データ更新の構成] ダイアログ ボックスに表示されません。
visDataRecordsetDontCopyLinks 16 データ レコードセットを追加しますが、図形データ リンクは切り取られたりコピーされたりしません。

一度割り当てた値は、DataRecordset オブジェクトが存在する間は変更することができません。

引数 Name は、データ レコードセットに表示名を割り当てるための文字列です (省略可能)。 [外部データ] ウィンドウを Visio UI に表示するように指定している場合、この引数によって渡される名前が追加したデータ レコードセットに対応する [外部データ] ウィンドウのタブに表示されます。

Add メソッドまたは AddFromConnectionFile メソッドを使用して作成されたデータ レコードセットとは異なり、AddFromXML メソッドを使用して作成されたデータ レコードセットは、DataConnection オブジェクトに関連付けられません。

さらに、AddFromXML メソッドを使用して作成されたデータ レコードセットは、DataRecordset.RefreshInterval プロパティの設定に関係なく自動的にリフレッシュされません。 このようなデータ レコードセット内のデータを更新するには、 DataRecordset.RefreshUsingXML メソッドを呼び出す必要があります。

AddFromXML メソッドが成功した場合、次のアクションが実行されます。

  • DataRecordset オブジェクトを作成し、Name パラメーターに指定されている名前を割り当てます。 名前を指定しない場合、Visio はデータ レコードセットに、データのソースであるデータベース テーブルの名前を割り当てます。

  • データ ソースの列のデータ型を対応する Visio データ型にマップします。同時に、対応する Visio データ型を持たないために Visio の図形にリンクできないデータ ソースの列を削除するため、結果をフィルター処理します。

  • インポートされたデータに有効な Visio データ行 ID がない場合、データ レコードセットに各行に Visio データ行 ID を割り当てます。 Visio のデータ行 ID の詳細については、「 DataRecordset.GetDataRowIDs」 のトピックを参照してください。

例

次の Microsoft Visual Basic for Applications (VBA) マクロは、AddFromXML メソッドを使用して、Visio 図面を ADO XML 文字列に含まれるデータに接続する方法を示します。

XML 文字列の例は、次のとおりです。 この文字列を AddFromXML メソッドに渡すと、"Cities" という名前の 1 つの列と、2 つのデータ行 (その列内の都市名で構成されるエントリを含む) を含むデータ レコードセットが作成されます。

<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>

次のサンプル コードでは、データを含む XML 文字列の名前および作成する新しいデータ レコードセットに割り当てる表示名を含む文字列の名前を AddFromXML メソッドに渡します。

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 のサポートおよびフィードバックを参照してください。