Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Zinc en 13 Junio 2010, 09:27 am



Título: Problema con Find First en BD Access.
Publicado por: Zinc en 13 Junio 2010, 09:27 am
Buenas gente!.
Tengo un problema, no puedo encontrar la forma de que yo ingrese un dato y el programa se fije si ese dato se encuentra en alguno de los registros de la base de datos.
He buscado en internet y probado de todas formas y siempre me falta un error.
Es como que me busca el nombre del campo del registro pero no busca en el contenido. Si estoy usando el comando equivocado, me podrían decir cual es la forma correcta de poder hacerlo?.
Algo sencillo...

EDIT.

El error que me tira, es que no reconoce a lo que yo ingreso como campo válido del registro, si yo pongo un nombre del campo (llámese Numero), si pongo número no me da error, pero no me busca dentro de cada registro que es lo que yo quiero hacer.

Saludos.


Título: Re: Problema con Find First en BD Access.
Publicado por: karmany en 13 Junio 2010, 20:31 pm
Pon el código exacto y el nombre de los campos. Tiene que ser algo sencillo.


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 13 Junio 2010, 23:05 pm
Código:
Private Sub Command4_Click()
Dim Query As String
Query = InputBox("Ingrese criterio a buscar")
Data1.Recordset.FindFirst Query
If Data1.Recordset.NoMatch Then
    MsgBox "El lote numero: " & aux3.cadena & "no se encuentra en la base de datos"
End If
End Sub

Mis campos son :
Nº Lote
Rango Caravana
Raza
Establecimiento
Vacunacion
Categoria

Si yo pongo por ej, una raza en el inputbox, me devuelva el que encontró o los que hay, algo así sería.

Saludos.


Título: Re: Problema con Find First en BD Access.
Publicado por: karmany en 14 Junio 2010, 01:52 am
Puedes hacerlo así:

Código
  1. Dim buscado as string, criterio as string
  2.  
  3. buscado =  InputBox("Ingrese criterio a buscar")
  4. if buscado = "" then exit sub
  5. criterio = "campo_basededatos LIKE '%" & buscado & "%'  [notadekarmany]Es para decir que contiene. Si es para decir comienza hay que quitar el primer %. Y si es exactamente la búsqueda hay que quitar los dos %. Si trabajas con DAO tienes que cambiar los % por *.[/notadekarmany]
  6.  
  7. ado01.Recordset.MoveFirst
  8. ado01.Recordset.Find criterio
  9. if ado01.Recordset.EOF then
  10.   ado01.Recordset.Movelast
  11.   msgbox "no existe"
  12. end if


Título: Re: Problema con Find First en BD Access.
Publicado por: .:BlackCoder:. en 14 Junio 2010, 02:42 am
Pero ese codigo que puso Zinc deberia funcionar... no?


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 14 Junio 2010, 02:50 am
A mi no me funciona, osea, entendés mi idea?.
Yo lo que quiero hacer, es hacer un función que me permita buscar un dato que yo ingreso en los registros de la base de datos. Pero el code que posteo yo, aparentemente no funciona.
Escucho sugerencias..

Saludos,.


Título: Re: Problema con Find First en BD Access.
Publicado por: .:BlackCoder:. en 14 Junio 2010, 03:12 am
Tu code lo que hace es avisar si no lo encontro... Segun yo  :xD
Si tienes etiquetas (labels) asociados al datacontrol te mostrar el registro en el que consiguio el "dato" que ingresaste...

No??? alguien que sepadel tema que aclare yo apenas toy estudiandolo...


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 14 Junio 2010, 19:51 pm
Nadie puede ayudar con algo tan simple?
Como ha decaído el nivel del foro desde que me fuí...


Título: Re: Problema con Find First en BD Access.
Publicado por: karmany en 14 Junio 2010, 22:03 pm
Te he hecho un simple ejemplo:(Lo he vuelto a subir)
http://www.4shared.com/file/cKVi590z/Ejemplo_criterio_DAO_VB2.html (http://www.4shared.com/file/cKVi590z/Ejemplo_criterio_DAO_VB2.html)

PD. Evita usar DAO, es más flexible ADO.


Título: Re: Problema con Find First en BD Access.
Publicado por: .:BlackCoder:. en 14 Junio 2010, 22:21 pm
PD. Evita usar DAO, es más flexible ADO.

Cierto... Aunque en ADO solo existe Find, no FindFirst, FindLast y esos metodos... Solo Find, pero tu lo gestionas para que haga su labor...

Ahora yo solo tengo una pregunta... Que fue la que hice primero... El code que puso Zinc, No deberia funcionar????  :huh: Poque yo creo que si funciona, si le ingresas un criterio valido...

Saludos


Título: Re: Problema con Find First en BD Access.
Publicado por: karmany en 14 Junio 2010, 22:27 pm
Cita de: .:BlackCoder:.
Ahora yo solo tengo una pregunta... Que fue la que hice primero... El code que puso Zinc, No deberia funcionar????

Por eso mismo le he hecho un ejemplo. Pueden ser muchas causas por las que Zinc no lo ha hecho bien, y eso no se ve en el código que ha puesto. Por ejemplo tal vez ha puesto mal la conexión a la base de datos, o no ha puesto correctamente el RecordSource en la tabla adecuada o tal vez está haciendo operaciones con valores con String y no es lo mismo un valor numérico. Pueden ser muchos errores. Yo le he hecho un simple ejemplo tal cual ha puesto él el código.

Salu2


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 14 Junio 2010, 22:50 pm
Gracias karmany!


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 15 Junio 2010, 01:24 am
Karmany, probé el codigo que me pasaste y me da varios errores.
Segundo, me podrías decir que función tiene?.

Saludos.


Título: Re: Problema con Find First en BD Access.
Publicado por: .:BlackCoder:. en 15 Junio 2010, 02:17 am
Pes mujestra el primer registro que sea mayor que 4 en el campo rango_caravana en esa base de datos... Y lo muestra en el text1... Fijate en las propiedades DataSourse y DataField de el text1...

El error talvez sea al momento de conectarse con la base de datos... Pero no te se decir...

Saludos...


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 15 Junio 2010, 02:33 am
Me tira este error:
Código:
Couldn't find installable ISAM


Título: Re: Problema con Find First en BD Access.
Publicado por: karmany en 15 Junio 2010, 03:41 am
Instala el SP6 para VB6, tal vez sea eso.

Microsoft dice lo siguiente:
http://support.microsoft.com/kb/273458/en-us
http://support.microsoft.com/kb/299457/en-us

PD. No sé a qué puede deberse ese error...


Título: Re: Problema con Find First en BD Access.
Publicado por: Zinc en 15 Junio 2010, 04:50 am
Bueno, en fin, no importa si no funciona, lo importante es entenderlo, lo que hace el code que me pasaste es fijarse si hay algun registro que su rango de caravana, sea mayor que 4, no es así?.