PROBLEM
When performing edits on the underlying data, the changes are not reflected in map layers and tables that are based on a query. This is the case even after clicking refresh view or reload cache in the table window.
If a primary key is not supplied when the layer or table is created, a copy of the data is made and an ObjectID column is added. The copy version is what is used when the data is read. If there are changes in the underlying database, the copy is not updated, and these changes are not seen.
Warning:
In ArcGIS 10.0, this solution requires a separate VBA license.
The table that the feature layer or standalone table object references must be closed and reopened.
The code below shows how to do this with feature layers. For standalone tables, all references pointing to the table need to be removed and re-added to ArcMap.
Code:
Public Sub Refresh_Copy()
Dim pMXDoc As IMxDocument
Dim pDTable As IDisplayTable
Dim pDataSet As IDataset
Dim pQName2 As IQueryName2
Dim pName As IName
Dim pStTab As IStandaloneTable
Dim pFLayer As IFeatureLayer
Dim pTable As ITable
Set pMXDoc = ThisDocument
Set pDTable = pMXDoc.SelectedItem
If Not TypeOf pDTable Is IFeatureLayer Then Exit Sub
Set pDataSet = pDTable.DisplayTable
If TypeOf pDataSet.FullName Is IQueryName2 Then
Set pQName2 = pDataSet.FullName
Set pName = pQName2
Set pFLayer = pDTable
Set pFLayer.FeatureClass = Nothing
Set pDTable = Nothing
Set pDataSet = Nothing
Set pTable = pName.Open
Set pFLayer.FeatureClass = pTable
End If
End Sub
Article ID:000005735
Get help from ArcGIS experts
Download the Esri Support App