Имелось ввиду можно ли выделить, допустим, точку в на карте (в проекте AcGis) непосредственно из базы Access.
Есть такой скриптик
Public Sub ShowPoint(pMapMX, spoint As String)
On Error GoTo Err_ShowPoint
Dim pEnumLayers As IEnumLayer
Dim pLayer As ILayer
Dim pMap As IMxDocument
Dim sLayerName As String
Set pMap = pMapMX
Set pEnumLayers = pMap.FocusMap.Layers
sLayerName = "Points"
spoint = "point='" & spoint & "'"
If pEnumLayers Is Nothing Then Exit Sub
' find the requested layer:
Set pLayer = pEnumLayers.Next
Do While Not pLayer Is Nothing
If UCase(pLayer.Name) = UCase(sLayerName) Then Exit Do
Set pLayer = pEnumLayers.Next
Loop
If pLayer Is Nothing Then Exit Sub
Dim pQueryFilter As IQueryFilter
Set pQueryFilter = New QueryFilter
pQueryFilter.WhereClause = spoint
Dim pFeatureSelection As IFeatureSelection
Set pFeatureSelection = pLayer
pFeatureSelection.SelectFeatures pQueryFilter, esriSelectionResultNew, True
Dim pSelectionSet As ISelectionSet
Set pSelectionSet = pFeatureSelection.SelectionSet
i = pSelectionSet.IDs.Next
Dim pPt_FeatureClass As IFeatureClass
Dim pPt_FeatureLayer As IFeatureLayer
Set pPt_FeatureLayer = pLayer
Set pPt_FeatureClass = pPt_FeatureLayer.FeatureClass
Dim pFeature As IFeature
Dim pPt_Geometry As IGeometry
Dim pPoint As IPoint
FieldIndex = pPt_FeatureClass.FindField("Shape")
Set pFeature = pPt_FeatureClass.GetFeature(i)
Set pPt_Geometry = pFeature.Value(FieldIndex)
Set pPoint = pPt_Geometry
Dim pEnvelope As IEnvelope
Dim pActiveView As IActiveView
Dim pDisplayTransform As IDisplayTransformation
Set pActiveView = pMap.FocusMap
Set pDisplayTransform = pActiveView.ScreenDisplay.DisplayTransformation
Set pEnvelope = pDisplayTransform.VisibleBounds
Dim dXmin As Double, dYmin As Double, dXmax As Double, dYmax As Double
Dim dX As Double, dY As Double, MyCheck As Boolean
pEnvelope.QueryCoords dXmin, dYmin, dXmax, dYmax
Dim pGeo As IGeometry
Set pGeo = pPoint
Dim pSpRef As ISpatialReference
Set pSpRef = pEnvelope.SpatialReference
pGeo.Project pSpRef
dX = pPoint.X
dY = pPoint.Y
MyCheck = (dX < dXmin) Or (dX > dXmax) Or (dY < dYmin) Or (dY > dYmax)
If MyCheck Then
pEnvelope.CenterAt pPoint
End If
pDisplayTransform.VisibleBounds = pEnvelope
pMap.ActiveView.Refresh
Err_ShowPoint:
Set app = Nothing
End Sub
имя слоя задается sLayerName = "Points"
идентификатор spoint = "point='" & spoint & "'"
вызывается примерно так
Private Sub Кнопка22_Click()
Dim spoint As String
spoint = Forms!Points!point
Dim sss As String
Dim app As IMxDocument
Dim doc As IDocument
Dim apl As IApplication
Set app = GetObject(MyGIS)
Set doc = app
Set apl = doc.Parent
sss = apl.Caption
ShowPoint app, spoint
AppActivate sss
Set app = Nothing
End Sub
имеется ввиду, что MyGIS – путь к ГИС-проекту, идентификатор берется в форме Points поле point
Только желательно перед этим запустить сам проект – иногда он не становится активным, его потом пешком выбивать приходится.