Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Multiple busqueda.

Estas en el tema de Multiple busqueda. en el foro de Visual Basic clásico en Foros del Web. Miren intento conseguir los datos del campo "nombre", con sus id's corresdpondientes, pero no me funciona, solo me muestra el prmier nombre y listo. necestio ...
  #1 (permalink)  
Antiguo 29/05/2006, 17:49
 
Fecha de Ingreso: marzo-2006
Mensajes: 34
Antigüedad: 18 años, 1 mes
Puntos: 0
Multiple busqueda.

Miren intento conseguir los datos del campo "nombre", con sus id's corresdpondientes, pero no me funciona, solo me muestra el prmier nombre y listo.

necestio registrar los tres nombres apuntados por Id.

La conmexion y la apertura(open(recordset), connection) van en el form principal.

Ojala puedad ayudarme.
Grazcias.

Private Sub busqueda()
Dim sSQL As String
Dim sSQL1 As String
Dim sSQL2 As String
Dim nom As String
Dim nom1 As String
Dim nom2 As String

sSQL = "select * table1 where id='1'"
sSQL1 = "select * table1 where id='3'"
sSQL2 = "select * from table1 where id='4'"
If Not rst.EOF Then
nom = rst.Fields("Nombre") 'nom seria lo que desea enviar al puerto serie
nom1 = rst.Fields("Nombre")
nom2 = rst.Fields("Nombre")
End If
Text3.Text = nom
Text4.Text = nom1
Text5.Text = nom2




End Sub
  #2 (permalink)  
Antiguo 29/05/2006, 22:13
Avatar de marcos1979  
Fecha de Ingreso: abril-2004
Ubicación: 62º 06' 18" O / 33º 07' 47" S
Mensajes: 331
Antigüedad: 20 años
Puntos: 1
Creo que estas equivocado. Las consultas SQL se deben hacer al abrir el recordset.
Supongo que, para cargarlo ejecutas "SELECT * FROM tabla"

Despues cuando haces nom = rst.Fields("Nombre") estas cargando el valor del registro actual por eso te muestra siempre el mismo.
Si ya tenes cargados todos los nombres con "SELECT * FROM tabla" usa Find para buscar el que queres.
Código:
Dim rst as New ADODB.Recodset
Dim SQL as String
Dim nom as String
Dim nom1 as String
Dim nom2 as String

'Esta es la sentencia SQL que se va a ejecutar
SQL = "SELECT nombre, id FROM tabla"

'Cargamos los registros (Todos en este caso)
rst.Open SQL, conexion, adOpenForwardOnly, adLockBatchOptimistic 

If rst.RecordCount > 0 then 'Vemos si hay algun registro o dará error

'Buscamos los que nos interesan (1, 3, 4 en tu ejemplo)
rst.Find "id = '1'", , adSearchForward, 1

nom = rst.Fields("nombre").Value

rst.Find "id = '3", , adSearchForward, 1

nom1 = rst.Fields("nombre").Value

rst.Find "id = '4'", , adSearchForward, 1

nom2 = rst.Fields("nombre").Value

End If

Text3.Text = nom
Text4.Text = nom1
Text5.Text = nom2
espero que te sirva, un saludo
__________________
Marcos

El dinero no da la felicidad... démelo y sea feliz!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:47.