Probleme mit QueryFilter

Hallo,

Über SelectByShape wähle ich XY-Daten einer Tabelle aus und möchte auf diese Auswahl einen QueryFilter anwenden. Die Auswahl mit SelectByShape (der Benutzer zieht ein Rechteck auf) funktioniert ohne Probleme und ich habe alle Daten im SelectionSet. Mein Problem ist, dass ich aber nur die Daten in meiner Auswahl haben möchte, die auch noch eine bestimmte logische Bedingung erfüllen (z.B. INDEX > 100).
Ich würde mich über jede Hilfe freuen.

Gruß

Joerg


Private Sub UIToolControl1_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)

Dim pMxApp As IMxApplication
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pQueryFilter As IQueryFilter
Dim pCursor As ICursor
Dim pActiveView As IActiveView
Dim pRubberBand As IRubberBand
Dim pEnvelope As IEnvelope
Dim pTabSelection As ITableSelection
Dim pSelectionSet As ISelectionSet
Dim pFlayer As IFeatureLayer
Dim pEnumIDs As IEnumIDs

Set pMxApp = Application
Set pMxDoc = Application.Document
Set pMap = pMxDoc.FocusMap
Set pActiveView = pMap

Set pRubberBand = New RubberEnvelope
Set pEnvelope = pRubberBand.TrackNew(pActiveView.ScreenDisplay, Nothing)

pMap.SelectByShape pEnvelope, pMxApp.SelectionEnvironment, False

Set pFlayer = pMxDoc.SelectedLayer
Set pTabSelection = pFlayer

Set pQueryFilter = New QueryFilter
pQueryFilter.WhereClause = "INDEX = " & ID & ""

Set pSelectionSet = pTabSelection.SelectionSet
pSelectionSet.Search pQueryFilter, False, pCursor

Set pEnumIDs = pSelectionSet.IDs
.
.
.
Hallo Joerg21,


meines Wissens gibt es neben dem QueryFilter auch einen SpatialFilter, der von diesem erbt. Daher ist die Programmierung sehr aehnlich:

'Create a point to use for the search:
Dim pPoint As IPoint
Set pPoint = New esriCore.Point
pPoint.PutCoords -117.946, 35.823

'Getting a spatial filter
Dim pFilter As IspatialFilter
Set pFilter = New SpatialFilter
' Setting the Geometry, GeometryField and SpatialRel parameters:

With pFilter
Set .Geometry = pPoint
.GeometryField = "SHAPE"
.SpatialRel = esriSpatialRelIntersects
End With
' Execute the filter:

Dim pFeatureCursor As IfeatureCursor
Set pFeatureCursor = pFeatureClass.Search(pFilter, False)

Diesen Code habe ich aus der ArcObjectsDeveloper-Hilfe.


Gruss und happy GISsing weiterhin


Uwe
DB-GIS