Compartilhar via


Método DataRecordset.GetAllRefreshConflicts (Visio)

Retorna uma matriz que contém formas vinculadas a linhas de dados que têm conflitos não resolvidos depois que um conjunto de registros de dados é atualizado. .

Observação

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

Sintaxe

expressão. GetAllRefreshConflicts

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

Valor de retorno

Shape()

Comentários

Quando você atualiza dados de uma fonte de dados alterada após a última atualização de dados, podem ocorrer conflitos. Os conflitos podem resultar quando uma única forma está vinculada a mais de uma linha na mesma fonte de dados ou quando uma forma está vinculada a uma linha na fonte de dados que foi excluída.

Para determinar quais linhas de conjunto de registros de dados produziram o conflito, passe as formas retornadas por GetAllRefreshConflicts para o método GetMatchingRowsForRefreshConflict , que retorna uma matriz de linhas que estão em conflito.

Exemplo

Essa macro do Microsoft Visual Basic for Applications (VBA) mostra como usar 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. 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 iterará na matriz de formas retornada e imprimirá os nomes das formas com conflitos na mesma janela.

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 causará um conflito.

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

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.