Compartilhar via


Método DataRecordset.RemoveRefreshConflict (Visio)

Apaga do documento atual as informações sobre um conflito de uma forma vinculada a dados.

Observação

This Visio object or member is available only to licensed users of Visio Professional 2013.

Sintaxe

expressão. RemoveRefreshConflict (ShapeInConflict)

Expressão Uma expressão que retorna um objeto DataRecordset .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
ShapeInConflict Obrigatório [IVSHAPE] Uma forma vinculada a dados que tem um conflito após a atualização do conjunto de registros de dados.

Valor de retorno

Nada

Comentários

Se ShapeInConflict realmente não tiver conflitos, o método não terá efeito.

Se você optar por não remover as informações sobre um conflito, elas persistirão indefinidamente no documento atual.

Exemplo

Essa macro do Microsoft Visual Basic for Applications (VBA) mostra como usar o método RemoveRefreshConflict para remover conflitos. Ela chama o método GetAllRefreshConflicts para determinar quais formas, se houver, apresentarão conflitos após a atualização de um conjunto de registros de dados. Em seguida, ele chama o método GetMatchingRowsForRefreshConflict para determinar qual linha de conjunto de registros de dados ou linhas está causando o conflito.

Ela atualiza o conjunto de registros de dados adicionado mais recentemente e, se não localizar nenhum conflito resultante, imprimirá "No conflicts" na janela Immediate. Se localizar conflitos, ela passará cada uma das formas com conflitos para o método GetMatchingRowsForRefreshConflict e imprimirá as identificações das linhas resultantes na mesma janela. Em seguida, ela passará as formas com conflitos ao método RemoveRefreshConflict para que ele remova os conflitos.

Antes de executar essa macro, verifique se o conjunto de registros de dados adicionado mais recentemente é um conjunto de registros de dados conectado (não baseado em XML) e se a conexão com a fonte de dados original ainda está disponível. Em seguida, exclua uma linha da fonte de dados ou faça outra alteração que cause conflito quando você atualizar o conjunto de registros de dados.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.