Query with String Variable

571
2
05-16-2010 08:26 PM
chriss_
New Contributor II
Hi!

I want to query a feature with a variable in string format. I read plenty of postings related to this issue but none of the solutions worked for mer. Hope somebody can help me on this.

Private Sub UpdateValue()

' Par 1: Define the feature class.
Dim pMxDoc As IMxDocument
Dim pFeatLayer As IFeatureLayer
Dim pFeatureClass As IFeatureClass
Dim pFields As IFields
Dim ii As Integer
Dim p As String
Set pMxDoc = ThisDocument
Set pFeatLayer = pMxDoc.FocusMap.Layer(0)
Set pFeatureClass = pFeatLayer.FeatureClass
p = A1

' Part 2: Prepare a feature cursor.
Dim pQFilter As IQueryFilter
Dim pUpdateFeatures As IFeatureCursor
' Prepare a query filter.
Set pQFilter = New QueryFilter
  pQFilter.WhereClause = "To_='" & p & "'"


' Create a feature cursor for updating.
Set pUpdateFeatures = pFeatureClass.Update(pQFilter, False)

' Part 3: Calcuate the Class value.
Dim indexClass As Integer
Dim pFeature As IFeature
indexClass = pUpdateFeatures.FindField("Amount")
Set pFeature = pUpdateFeatures.NextFeature
' Loop through each feature and update its Class value.
Do Until pFeature Is Nothing
pFeature.Value(indexClass) = 1
pUpdateFeatures.UpdateFeature pFeature
Set pFeature = pUpdateFeatures.NextFeature
Loop


End Sub


If I write instead of  pQFilter.WhereClause = "To_='" & p & "'" pQFilter.WhereClause"To_='A1' " everything works find. But i need to use the variable as i have to develop the code further. I also tried "To_='" & p & "'" and many other combinations.

any idea where the mistake might be or how i can work around?

Best regards
Chris
0 Kudos
2 Replies
NirYoscovitz
New Contributor III
Hi Chris,

The mistake is in the assignment of the p variable.
You should use quotes :
p = "A1"

Regards,
Nir
0 Kudos
chriss_
New Contributor II
Hi Nir!

Thanks a lot. I thought I tried this one before but maybe not in this combination.

Best regards

Chris
0 Kudos