Problema con Find First en BD Access.

Iniciado por Zinc, 13 Junio 2010, 09:27 AM

0 Miembros y 1 Visitante están viendo este tema.

Zinc

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.

karmany

Pon el código exacto y el nombre de los campos. Tiene que ser algo sencillo.

Zinc

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.

karmany

Puedes hacerlo así:

Código (vb) [Seleccionar]
Dim buscado as string, criterio as string

buscado =  InputBox("Ingrese criterio a buscar")
if buscado = "" then exit sub
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]

ado01.Recordset.MoveFirst
ado01.Recordset.Find criterio
if ado01.Recordset.EOF then
  ado01.Recordset.Movelast
  msgbox "no existe"
end if

.:BlackCoder:.

Pero ese codigo que puso Zinc deberia funcionar... no?
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




Zinc

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,.

.:BlackCoder:.

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...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




Zinc

Nadie puede ayudar con algo tan simple?
Como ha decaído el nivel del foro desde que me fuí...

karmany

#8
Te he hecho un simple ejemplo:(Lo he vuelto a subir)
http://www.4shared.com/file/cKVi590z/Ejemplo_criterio_DAO_VB2.html

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

.:BlackCoder:.

Cita de: karmany en 14 Junio 2010, 22:03 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
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja