次の方法で共有


DataRecordset.GetAllRefreshConflicts メソッド (Visio)

データ レコードセットの更新後に解決されていない競合があるデータ行にリンクされた図形を含む配列を返します。 .

注:

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

構文

GetAllRefreshConflicts

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

戻り値

Shape()

注釈

最後にデータを更新してから変更されたデータ ソースからデータを更新すると、競合が発生する可能性があります。 競合が発生するのは、1 つの図形が同じデータ ソース内の複数の行にリンクされている場合、または削除されたデータ ソース内の行に図形がリンクされている場合です。

競合を生成したデータ レコードセット行を特定するには、 GetAllRefreshConflicts によって返される図形を、競合している行の配列を返す GetMatchingRowsForRefreshConflict メソッドに渡します。

次の Microsoft Visual Basic for Applications (VBA) マクロは、データ レコードセットの更新後、競合する図形がある場合は GetAllRefreshConflicts メソッドを使用して、どの図形が競合しているか判断する方法を示しています。 最後に追加されたデータ レコードセットを更新し、競合がなかった場合は [イミディエイト] ウィンドウに "No conflicts" と出力します。 競合を発見した場合は、取得した図形の配列をループし、図形の名前を出力します。

このマクロを実行する前に、最後に追加されたデータ レコードセットは (XML ベースではない) 接続されているデータ レコードセットで、元のデータ ソースへの接続が使用可能であることを確認してください。 その後、データ ソースから行を削除したり、その他の変更を行うと競合が発生します。

Public Sub GetAllRefreshConflicts_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intRecordsetCount As Integer 
    Dim intShapeCount As Integer         
    Dim avsoShapes() As Visio.Shape     
     
    intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) 
 
    vsoDataRecordset.Refresh    
    avsoShapes = vsoDataRecordset.GetAllRefreshConflicts 
     
    If IsEmpty(avsoShapes) Then 
        Debug.Print "No conflict" 
    Else 
        For intShapeCount = LBound(avsoShapes) To UBound(avsoShapes) 
            Debug.Print avsoShapes(intShapeCount).Name 
        Next intShapeCount 
    End If 
     
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。