Updates メソッドにパラメーターとして渡された ADO クラシック XML スキーマに準拠する文字列に含まれるデータでリンクされた図形を更新します。
注:
この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。
構文
式。RefreshUsingXML (NewDataAsXML)
式DataRecordset オブジェクトを返す式。
パラメーター
| 名前 | 必須 / オプション | データ型 | 説明 |
|---|---|---|---|
| NewDataAsXML | 必須 | String | データ レコードセットを更新する新しいデータを含む XML 文字列です。従来の ADO スキーマに準拠します。 |
戻り値
なし
解説
XMLString パラメーターには、ADO の従来の XML スキーマに準拠した、インポートするデータを含む XML 文字列を渡します。 この後の例で、XML 文字列の例を示します。
RefreshUsingXML メソッドに渡す XML 文字列のデータは、更新するデータ レコードセットのデータと同様の構造にする必要があります。 少なくとも、主キー列は両方のデータ セットで同じである必要があります。 主キーは、各行の一意な識別子を含むデータ列の名前を識別します。 各行の主キー カラムの値はデータ レコードセット内で行を一意に識別します。
データ レコードセットの作成時に、データ ソース内の行の順序に従って、レコードセットの各行に行 ID が割り当てられます。
RefreshUsingXML メソッドに渡した XML 文字列に Visio の行 ID で構成される列が含まれている場合 (たとえば、データ レコードセットの DataAsXML プロパティ値を取得して Visio からエクスポートした場合など)、RefreshUsingXML メソッドは文字列内の行 ID の検証を試みます。 行 ID が有効であると判断された場合、更新されたデータ レコードセットで再利用します。 行 ID が有効ではないと判断された場合は、エラーが返されます。
例
次の Microsoft Visual Basic for Applications (VBA) マクロは、RefreshUsingXML メソッドを使用して、ADO クラシック XML 文字列に含まれるデータで既存のデータ レコードセットを更新する方法を示しています。
XML 文字列の例は、次のとおりです。 このマクロを実行する前に、新しい Visio 図面を開き、 DataRecordsets.AddFromXML メソッド トピックでマクロを実行します。
これを RefreshUsingXML メソッドに渡すと、この文字列は AddFromXML メソッドによって作成されたデータ レコードセットを更新し、都市名を変更します。
<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='New York' />
<z:row c1='London' />
</rs:data>
</xml>
次のサンプル コードでは、更新データが含まれている XML 文字列の名前を RefreshUsingXML メソッドに渡します。
Public Sub RefreshUsingXML_Example()
Dim strXML As String
Dim intCount As Integer
Dim vsoDataRecordset As Visio.DataRecordset
intCount = ThisDocument.DataRecordsets.Count
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='New York'/>" + Chr(10) _
& "<z:row c1='London'/>" + Chr(10) _
& "</rs:data>" + Chr(10) _
& "</xml>"
ThisDocument.DataRecordsets(intCount).RefreshUsingXML(strXML)
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。