DataRecordset.RemoveRefreshConflict 方法 (Visio)
从当前文档中清除有关数据链接形状的冲突的信息。
注意
此 Visio 对象或成员仅供 Visio Professional 2013 的授权用户使用。
语法
表达式。RemoveRefreshConflict (ShapeInConflict)
表达 返回 DataRecordset 对象的表达式。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
ShapeInConflict | 必需 | [IVSHAPE] | 链接到数据的形状,该数据在刷新数据记录集后发生冲突。 |
返回值
Nothing
注解
如果 ShapeInConflict 实际上没有冲突,则 该方法将不起作用。
如果选择不删除有关冲突的信息,则该信息将永久存在于当前文档中。
示例
此 Microsoft Visual Basic for Applications (VBA) 宏演示如何使用 RemoveRefreshConflict 方法删除冲突。 它调用 GetAllRefreshConflicts 方法来确定在刷新数据记录集后哪些形状(如果有)存在冲突。 然后,它调用 GetMatchingRowsForRefreshConflict 方法来确定哪些数据记录集行导致冲突。
该方法将刷新最近添加的数据记录集,如果发现未产生任何冲突,则在“立即”窗口中输出“无冲突”。 如果的确发现冲突,该方法就会将存在冲突的每个形状传递给 GetMatchingRowsForRefreshConflict 方法,并在同一窗口中输出产生的行 ID。 然后再将存在冲突的形状传递给 RemoveRefreshConflict 方法,以消除冲突。
在运行此宏之前,请确保最近添加的数据记录集是已连接(不基于 XML)的数据记录集,并且到原始数据源的连接仍然可用。 然后在数据源中删除行或进行其他可在刷新数据记录集时引起冲突的更改。
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
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。