pawankr82

Important : Selected shapefile features using postfix Clauses (Order By).

Discussion created by pawankr82 on Sep 4, 2012
Latest reply on Sep 5, 2012 by Neil
Hi All,
I want to select the shapefile features using ORDER BY clause, but could not find the solution.
I getting the error : "Object Variable or With block variable is not SET". (at this line : Set pFeatureCursor = pFeatureClass.Search(pQueryFilter, False)).

Seeking your urgent help, if anybody knows the solutions pl help me to resolve this issue.

Here is my full code :

Public Sub SelectMapFeatures()
  Dim pMxDoc As IMxDocument
  Dim pMap As IMap
  Dim pActiveView As IActiveView
  Dim pFeatureLayer As IFeatureLayer
  Dim pFeatureSelection As IFeatureSelection
  Dim pQueryFilter As IQueryFilter
  Dim pQueryFilterDefinition As IQueryFilterDefinition

  Set pQueryFilterDefinition = pQueryFilter
  Set pMxDoc = Application.Document
  Set pMap = pMxDoc.FocusMap
  Set pActiveView = pMap

  'For simplicity sake let's use the first layer in the map
  If Not TypeOf pMap.Layer(0) Is IFeatureLayer Then Exit Sub
  Set pFeatureLayer = pMap.Layer(0)
  Set pFeatureSelection = pFeatureLayer 'QI

  'Create the query filter
  Set pQueryFilter = New QueryFilter
  pQueryFilter.SubFields = "STATE_NAME,Shape,FID"

  pQueryFilter.WhereClause = "FID> 10"

  pQueryFilterDefinition.PostfixClause = "ORDER BY STATE_NAME"

  Dim pFeatureCursor As IFeatureCursor
  Dim pFeatureClass As IFeatureClass
  Set pFeatureCursor = pFeatureClass.Search(pQueryFilter, False)

  ' Set pCursor = pQueryFilterDefinition.Search(pQueryFilter, False)
  'Invalidate only the selection cache
  'Flag the original selection
  pActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing
  'Perform the selection
  pFeatureSelection.SelectFeatures pQueryFilter, esriSelectionResultNew, False
  'Flag the new selection
  pActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing

End Sub


Seeking your urgent help, if anybody knows the solutions pl help me to resolve this issue.

Outcomes