次の方法で共有


DataRecordset.RefreshUsingXML メソッド (Visio)

更新メソッドにパラメーターとして渡される 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 のサポートおよびフィードバックを参照してください。