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

Find con ADO

Estas en el tema de Find con ADO en el foro de Visual Basic clásico en Foros del Web. Gracias de antemamo por su ayuda. Estoy utilizando este codigo: MiRecordset.Find "[Tema] like '" & Text1.Text & "'" me podrian decir que parte del código ...
  #1 (permalink)  
Antiguo 23/02/2008, 13:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Find con ADO

Gracias de antemamo por su ayuda.

Estoy utilizando este codigo:

MiRecordset.Find "[Tema] like '" & Text1.Text & "'"

me podrian decir que parte del código se tiene que cambiar (y por cual) para que realice una busqueda:

1. Igual.
2. En cualquier lugar.
3. Despues de . . .
4. antes de . . .

Gracias a todos!
  #2 (permalink)  
Antiguo 24/02/2008, 04:26
 
Fecha de Ingreso: julio-2007
Ubicación: Delante del PC (Barcelona
Mensajes: 157
Antigüedad: 16 años, 9 meses
Puntos: 2
Re: Find con ADO

1.Para el IGUAL.

MiRecordset.Find "Tema = '" & Text1.Text & "'"

2. En cualquier lugar te refieres a que pueda coincidir en cualquier lugar de la palabra?

MiRecordset.Find "[Tema] like & " " & Text1.Text (diria que el Like iva sin la comilla simple, pruebalo.)
En el like puedes utilizar el "*" (una o varias ocurrencias de cualquier carácter) o "_" (una ocurrencia de cualquier carácter)

3. Despues del registro actual en el que te encuentras (o uno en concreto)

MiRecordset.Find "[Tema] ='" & Text1.Text & "'", Num, adSearchForward

4. Antes del registro actual en el que te encuentras (o uno en concreto)

MiRecordset.Find "[Tema] ='" & Text1.Text & "'", Num, adSearchBackward


Num es una variable LONG que le pasas para decirle el número de registros que quieres que avance para que empiece a buscar desde allí. Si pones 0 buscará desde el actual.
  #3 (permalink)  
Antiguo 24/02/2008, 14:02
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Re: Find con ADO

Que tal extrem_bcn
Tengo este problema y no se coo solucionarlo
El codigo funciona bien hace la buqueda pero por ejemplo si tengo un registro llamado gerente y en la caja de texto escribo gerentes el puntero del datagrid desaparece cheka la imagen ima0054
y al hacer click en los botones que contienen movefirst,next,etc se genera un error
creo que he declarado mal los if como haria para que cuando el like no encuentre nada me envie al primer registro aqui dejo el codigo

Cita:
Private Sub txtBuscar_Change()
With rsCargo
If .RecordCount > 0 Then .MoveFirst
If Not txtBuscar = "" Then .Find "nomCargo like #" & txtBuscar + "%" & "#"
End With
End Sub
  #4 (permalink)  
Antiguo 24/02/2008, 15:08
 
Fecha de Ingreso: julio-2007
Ubicación: Delante del PC (Barcelona
Mensajes: 157
Antigüedad: 16 años, 9 meses
Puntos: 2
Re: Find con ADO

hola franko1809

mira lo primero que te diria es que para comprobar si la busca ha encontrado resultados o no hagas lo siguiente:


'En si encuentra algo entrará en el IF sinó NO.
if not(rsCargo.EOF and rsCargo.BOF) then

end if

por otro lado, és lógico que salte el puntero del RecordSet ya que no hay ninuna coincidencia con GERENTES ya que los operadores que añades buscan coincidencias a partir de la cadena que has introducido, es decir gerent te podrá encontrar gerente, pero gerentes no te lo encontrará.

Quien iva a buscar gerentes cuando ya anteriormente me ha encontrado lo que buscaba? (gerente)

Lo que has de hacer para que no te pete al darle a MoveFirts, MoveLast, MoveNext, MoveForward es ponerle la condición que de he dicho del BOF y EOF así seguro que no te dará error

saludos, espero haberte ayudado.
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 01:01.