Partager via


Méthode DataRecordset.RemoveRefreshConflict (Visio)

Efface du document actif les informations de conflit relatives à une forme liée aux données.

Remarque

Cet objet ou ce membre Visio est disponible uniquement pour les titulaires d’une licence d’utilisation de Visio Professionnel 2013.

Syntaxe

expression. RemoveRefreshConflict (ShapeInConflict)

Expression Expression qui renvoie un objet DataRecordset .

Parameters

Nom Requis/Facultatif Type de données Description
ShapeInConflict Requis [IVSHAPE] Forme liée à des données qui a un conflit après l’actualisation du jeu d’enregistrements de données.

Valeur renvoyée

Aucune

Remarques

Si ShapeInConflict n’a pas de conflits, la méthode n’aura aucun effet.

Si vous décidez de ne pas supprimer des informations de conflit, celles-ci seront conservées indéfiniment dans le document actif.

Exemple

Cette macro Microsoft Visual Basic pour Applications (VBA) illustre comment utiliser la méthode RemoveRefreshConflict pour supprimer des conflits. Elle appelle la méthode GetAllRefreshConflicts pour déterminer quelles sont les formes (le cas échéant) pour lesquelles il existe des conflits après l'actualisation d'un jeu d'enregistrements de données. Ensuite, il appelle la méthode GetMatchingRowsForRefreshConflict pour déterminer la ou les lignes du jeu d’enregistrements de données qui sont à l’origine du conflit.

Elle actualise le dernier jeu d'enregistrements de données ajouté et, si elle ne détecte aucun conflit, imprime « Aucun conflit » dans la fenêtre Exécution. Si elle détecte des conflits, elle transmet chaque forme pour laquelle il existe un conflit à la méthode GetMatchingRowsForRefreshConflict, puis affiche les ID de ligne dans la même fenêtre. Elle transmet enfin les formes pour lesquelles il existe un conflit à la méthode RemoveRefreshConflict pour supprimer les conflits.

Avant d'exécuter cette macro, vérifiez que le jeu d'enregistrements de données dernièrement ajouté est un jeu connecté (non XML) et que la connexion à la source de données d'origine est toujours disponible. Supprimez ensuite une ligne dans la source de données ou apportez toute autre modification qui générera un conflit après l'actualisation du jeu d'enregistrements de données.

Public Sub RemoveRefreshConflicts_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intRecordsetCount As Integer 
    Dim intShapeCount As Integer 
    Dim vsoShapes() As Visio.Shape 
     
    Dim intRowCount As Integer 
    Dim vsoShapeInConflict As Visio.Shape 
     
    Dim alngRowIDs() As Long 
    Dim lngvsoRowID As Long 
         
    intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) 
     
    vsoDataRecordset.Refresh 
    vsoShapes = vsoDataRecordset.GetAllRefreshConflicts 
     
    If IsEmpty(vsoShapes) Then 
        Debug.Print "No conflict" 
    Else 
        For intShapeCount = LBound(vsoShapes) To UBound(vsoShapes) 
            Set vsoShapeInConflict = vsoShapes(intShapeCount) 
            alngRowIDs = vsoDataRecordset.GetMatchingRowsForRefreshConflict(vsoShapeInConflict) 
             
            If IsEmpty(alngRowIDs) Then 
                Debug.Print "For shape:", vsoShapeInConflict.Name, "Row deleted." 
            Else 
                For intRowCount = LBound(alngRowIDs) To UBound(alngRowIDs) 
                    lngvsoRowID = alngRowIDs(intRowCount) 
                    Debug.Print "For shape:", vsoShapeInConflict.Name, "Row ID of row in conflict:", lngvsoRowID 
                Next intRowCount 
            End If 
             
            Call vsoDataRecordset.RemoveRefreshConflict (vsoShapeInConflict) 
            
        Next intShapeCount 
         
    End If 
     
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.