Consulta para campos tipo texto
Hola, estoy trabajando sobre el componente mapobjects dentro de e visual y lo que quiero hacer es realizar una consulta a una base de datos.
Tengo el siguiente código que me permite realizar una identificación de puntos a través de una consulta:
Dim exp As String
Dim x1 As Double, x2 As Double
Dim y1 As Double, y2 As Double
Dim rect As MapObjects2.Rectangle
Dim pt As New MapObjects2.Point
Set recs = Map1.Layers(Combo1.List(Combo1.ListIndex)).SearchExpression(Combo2.List(Combo2.ListIndex) & "=" & Text1.Text)
'esta es la parte donde me realiza la consulta
If Not recs.EOF Then
recs.MoveFirst
Do Until recs.EOF
Dim shp As Object
Set shp = recs.Fields("Shape").Value
Set rect = Map1.FullExtent
rect.ScaleRectangle 0.001
Map1.Extent = rect
pt.X = shp.X
pt.Y = shp.Y
Map1.CenterAt pt.X, pt.Y
Map1.Refresh
Map1.FlashShape shp, 3
recs.MoveNext
Loop
'esta parte me hace la identificación de los puntos y los flashea y hace un zoom para identificarlos a cada uno
ListView1.ListItems.Clear ' clear list view untuk list rekod baru
ListView1.ColumnHeaders.Clear
Dim newitem As ListItem
Dim Col As ColumnHeader
Dim desc As MapObjects2.TableDesc
Set desc = recs.TableDesc
Dim countField As Integer
countField = desc.FieldCount
For i = 0 To countField - 1
Set Col = ListView1.ColumnHeaders.Add()
Col.Text = desc.FieldName(i)
Next i
recs.MoveFirst
Do While Not recs.EOF
Set newitem = ListView1.ListItems.Add
newitem.Text = recs.Fields(desc.FieldName(0))
For i = 1 To countField - 1
newitem.SubItems(i) = recs.Fields(desc.FieldName(i))
Next i
recs.MoveNext
Loop
End If
'en esta parte se realiza el llenado de la informacion de los resultados de la consulta en el listview
mi pregunta es como puedo hacer para que me reconosca no solo campos numericos sino tambien de tipo texto, yo supongo que al que hay que cambiarle o modificarle es en la parte de la sentencia de:
Set recs = Map1.Layers(Combo1.List(Combo1.ListIndex)).SearchExpression(Combo2.List(Combo2.ListIndex) & "=" & Text1.Text)
Gracias, espero tu respuesta lo más pronto posible, es algo urgente, gracias.
Atentamente.
Nanchi
Tengo el siguiente código que me permite realizar una identificación de puntos a través de una consulta:
Dim exp As String
Dim x1 As Double, x2 As Double
Dim y1 As Double, y2 As Double
Dim rect As MapObjects2.Rectangle
Dim pt As New MapObjects2.Point
Set recs = Map1.Layers(Combo1.List(Combo1.ListIndex)).SearchExpression(Combo2.List(Combo2.ListIndex) & "=" & Text1.Text)
'esta es la parte donde me realiza la consulta
If Not recs.EOF Then
recs.MoveFirst
Do Until recs.EOF
Dim shp As Object
Set shp = recs.Fields("Shape").Value
Set rect = Map1.FullExtent
rect.ScaleRectangle 0.001
Map1.Extent = rect
pt.X = shp.X
pt.Y = shp.Y
Map1.CenterAt pt.X, pt.Y
Map1.Refresh
Map1.FlashShape shp, 3
recs.MoveNext
Loop
'esta parte me hace la identificación de los puntos y los flashea y hace un zoom para identificarlos a cada uno
ListView1.ListItems.Clear ' clear list view untuk list rekod baru
ListView1.ColumnHeaders.Clear
Dim newitem As ListItem
Dim Col As ColumnHeader
Dim desc As MapObjects2.TableDesc
Set desc = recs.TableDesc
Dim countField As Integer
countField = desc.FieldCount
For i = 0 To countField - 1
Set Col = ListView1.ColumnHeaders.Add()
Col.Text = desc.FieldName(i)
Next i
recs.MoveFirst
Do While Not recs.EOF
Set newitem = ListView1.ListItems.Add
newitem.Text = recs.Fields(desc.FieldName(0))
For i = 1 To countField - 1
newitem.SubItems(i) = recs.Fields(desc.FieldName(i))
Next i
recs.MoveNext
Loop
End If
'en esta parte se realiza el llenado de la informacion de los resultados de la consulta en el listview
mi pregunta es como puedo hacer para que me reconosca no solo campos numericos sino tambien de tipo texto, yo supongo que al que hay que cambiarle o modificarle es en la parte de la sentencia de:
Set recs = Map1.Layers(Combo1.List(Combo1.ListIndex)).SearchExpression(Combo2.List(Combo2.ListIndex) & "=" & Text1.Text)
Gracias, espero tu respuesta lo más pronto posible, es algo urgente, gracias.
Atentamente.
Nanchi
1 Respuesta
Respuesta de Roberto Alvarado
1