次の方法で共有


DataRecordsets.AddFromXML メソッド (Visio)

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

注:

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

構文

AddFromXML (XMLStringAddOptionsName)

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

パラメーター

名前 必須 / オプション データ型 説明
XMLString 必須 String Microsoft ActiveX データ オブジェクト (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 のサポートおよびフィードバックを参照してください。