Visual Basic - Busqueda en una base de datos

Life is soft - evento anual de software empresarial
 
Vista:

Busqueda en una base de datos

Publicado por Mauricio (25 intervenciones) el 07/02/2002 07:01:22
Hola necesito un poco de ayuda para realizar una busqueda en una base de datos y a continuacion la describo:

mi base de datos tiene los siguientes campos:
Producto
Preciodecompra
mayoreo
menudeo

ahora bien en base a estos datos necesito buscar una palabra en un campo y para esto se pregunta el campo donde se Va a buscar la palabra y despues pregunta la palabra, despues de eso uso el comando data1.recordset.movefirst de la siguiente manera

Private Sub Command1_Click()
Dim campo As String
Dim palabra As String

campo = InputBox("¿sobre que campo se va a realizar la busqueda?")
palabra = InputBox("Introduzca el dato a buscar")

Data1.Recordset.FindFirst (campo = palabra)
End Sub

pero me retorna un error "3070" ó "el motor de base de datos microsoft jet no reconoce falso como un nombre de campo o expresion validos

bueno creo que el error es que deve de estar en forma de cadena, pero ¿como le hago para que me busque lo que quiero y no me marque el error?

espero me puedan ayudar.

de antemano gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Busqueda en una base de datos

Publicado por alberto (278 intervenciones) el 07/02/2002 09:05:35
La sentencia:
Data1.Recordset.FindFirst (campo = palabra)
Debería quedar:
Data1.Recordset.FindFirst (campo &"='"& palabra & "'")
Y ojo que si palabra contiene apostrofos no funcionará, además si el campo no es uno de los campos de la Tabla te devolvera el error 3070.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Alberto

Publicado por Mauricio (25 intervenciones) el 07/02/2002 10:00:23
Gracias, ya corrio el programa sin ningún problema con la sintaxisis que me diste del comando Data1.Recordset.FindFirst (campo &"='"& palabra & "'") solo que ahora tengo una duda, mas que nada es inquietud ya que deseo saber ¿como o para que sirve el ' en el comando, o mejor si me pudieras hacer el favor de explicarme el por que de lo que va dentro del parentesis que esta despues del findfirst?.

espero tengas tiempo y ganas de responder la duda que tengo ya que casi nunca habia trabajado con bases de datos y es un poco confuso para mi.

de nuevo GRACIAS por la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pequeña Explicación.

Publicado por alberto (278 intervenciones) el 07/02/2002 15:24:46

Lo que va dentro del parentesis es la expresión de busqueda y debe ser una cadena de caracteres, en tu caso lo que quieres es buscar el primer elemento en el cual el campo a buscar coincida con el contenido de la variable palabra, y como esta me imagino es se corresponde con un campo de texto debe ir entre apostrofos, me explico:
Data1.Recordset.FindFirst ("Nombre='Pedro'")
busca el primer registro con el campo Nombre igual a Pedro, por contra:
Data1.Recordset.FindFirst ("Nombre=Pedro")
busca el primer campo con el campo Nombre igual al campo Pedro, como lo mas probable es que el campo Pedro no exista se produce el error.

Si el valor a buscar es un campo númerico el valor no es necesario que vaya entre apostrofos.
Espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DE NUEVO GRACIAS YA ENTENDI

Publicado por Mauricio (25 intervenciones) el 08/02/2002 05:32:04
GRACIAS DE NUEVO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar