Visual Basic - Problema con la búsqueda de registro. Ayuda Urge.

Life is soft - evento anual de software empresarial
 
Vista:

Problema con la búsqueda de registro. Ayuda Urge.

Publicado por LORENA (9 intervenciones) el 20/02/2001 11:21:37
Tengo un formulario de entrada de datos en una bd, conectado mediante ADO, con un comando de buscar registro con el siguiente código:
Dim db As Database
Dim rs As Recordset
Dim answer As String
answer = InputBox("INTRODUZCA NOMBRE", "Buscar registros")
sql = "select * from ABOGADOS where text1.text like " & _
"'*" & answer & "*'"
Set rs = db.OpenRecordset(sql)
If rs.RecordCount = 0 Then 'no se encontraron registros
MsgBox "No se encontraron registros coincidentes."

Set rs = db.OpenRecordset("ABOGADOS")
Else 'se encontró al menos un registro
rs.MoveFirst

End If

Pero siempre me da ERROR 91 : La variable de objeto o variable de bloque with no se ha establecido en la linea "set rs = db.OpenRecordset(sql)". Por favor como puedo conseguir que cuando ejecuto el comando del código que he puesto antes me haga realmente la búsqueda del registro.
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
sin imagen de perfil

RE:Problema con la búsqueda de registro. Ayuda Urg

Publicado por Joan Fabregas (101 intervenciones) el 20/02/2001 12:16:58
El problema es que el objeto db no esta establecido, tienes que utilizar:
dim db as new database
o bien antes de utilizar el objeto db
set db=new database

Por cierto en SQL, en la instruccion LIKE, en vez de utilizar el * se usa el % para obtener todos los registros similares.

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

NO FUNCIONA, la bd ya la tengo creada!

Publicado por LORENA (9 intervenciones) el 20/02/2001 13:03:16
La base de datos (bd1.mdb), ya la tengo creada, el problema es que cuando introduzco el código db= opendatabase me indica que "opendatabase" no es un argumento opcional.
El código ahora está así, pero sigue sin funcionar, por favor que alguien me ayude:
Dim sql As String
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase.Path("\bd1.mdb")
Dim answer As String
answer = InputBox("INTRODUZCA NOMBRE", "Buscar registros")
sql = "select * from abogados where text1.text like " & _
"'*" & answer & "*'"
Set rs = db.OpenRecordset(sql, opendynaset)
If rs.RecordCount = 0 Then 'no se encontraron registros
MsgBox "No se encontraron registros coincidentes."

Set rs = db.OpenRecordset("ABOGADOS")
Else 'se encontró al menos un registro
rs.MoveFirst

End If.
Como vereis antes del Path no está metido el App. porque no me lo admite. No obstante si veo que sigue dándome problemas meteré la ruta de la base de datos directamente.
Gracias.
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

RE:NO FUNCIONA, la bd ya la tengo creada!

Publicado por Rodrigo (29 intervenciones) el 20/02/2001 16:33:57
El OpenDatabase que tienes va sin el .path, tu codigo debe quedar asi:

Set db = OpenDatabase("\bd1.mdb") y si quieres que la encuentre donde esta tu aplicacion tienes que poner:

Set db = OpenDatabase(App.Path + "\bd1.mdb").

Espero te sirva.
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

RE:POCOS PARAMETROS. Ayuda Urge.

Publicado por LORENA (9 intervenciones) el 21/02/2001 13:12:42
Gracias a Joan y Rodrigo. He corregido el código con vuestra ayuda pero ahora me indica que existen POCOS PARAMETROS, SE ESPERABA 1. ¿QUÉ OCURRE?
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

RE:POCOS PARAMETROS. Ayuda Urge.

Publicado por Rodrigo (29 intervenciones) el 21/02/2001 17:25:48
Creo que el problema esta en:

Set rs = db.OpenRecordset(sql, opendynaset), debiera ser :

Set rs = db.OpenRecordset(sql, dbopendynaset).

Espero te funcione, avisame si no.
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