Visual Basic - hace falta cerrar recordset?

Life is soft - evento anual de software empresarial
 
Vista:

hace falta cerrar recordset?

Publicado por cris (10 intervenciones) el 19/09/2007 18:26:53
hola, hace muchos años que no toco visual basic 6.0. hasta ahora he trabajado con .net, y con clases de bases de datos ya hechas. asi que he aquí mi pregunta. Tengo una base de datos en Access, y mi jefe quiere que la haga con DAO. he creado la conexión en un módulo, así:
public sub Abrir_BasedeDatos
Set Dbase = OpenDatabase("c:\basededatos.mdb")
end sub
en el Mdi, en el form, que he puesto público porque si no no me funcionaba, llamo a la función Abrir_BasedeDatos
Hasta aquí bien. Luego en otro formulario al que llamo FrmUsusarios, donde controlo la lista de ususarios, tengo un text, donde inserto el código de usuario, y dandole a enter, me lo busca en la base de datos.
sConsulta_Usuario = "SELECT * FROM LISTA_USUARIOS WHERE COD_USUARIO = '" & TxtCodigo_Usuario.Text & "'"

Set rs_Usuarios = Dbase.OpenRecordset(sConsulta_Usuario, dbOpenDynaset)

With rs_Usuarios

If Not rs_Usuarios.EOF Then

pr_Completar_Text ' rellenar los datos

Else

MsgBox "Usuario no encontrado"

End If

End With

el recordset lo he declarado en el formulario, como public rs_usuarios as recordset

MI PREGUNTA: ¿debo cerrarlo? porque no me funciona, me da el error de:
La variable de tipo object o with no está establecida. Pensaba que lo tenía que abrir antes de hacer la consulta y cerrarlo, pero nada de nada. ¿podrían ayudarme? Gracias.
Porque sin cerrarlo, funciona perfectamente, pero así no debe ser no?
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:hace falta cerrar recordset?

Publicado por Jose (12 intervenciones) el 19/09/2007 20:59:49
Hola, aqui tienes una consulta que busca datos en una db, por razones internas esta todo en un solo bloque. En mi caso funciona perfectamente.

On Error Resume Next
Dim db As Database
Dim qry_snaps As Recordset
Dim c_bd As String

c_bd = C_pathDatos & "actas\" & "identidad.mdb"
Set db = OpenDatabase(c_bd)
Dim strsql As String

strsql = "select * from usuarios where [login]='" & C_login & "' and [password]='" & C_Password & "'"
Set qry_snaps = db.OpenRecordset(strsql, dbOpenDynaset)
If qry_snaps.RecordCount = 0 Then
'si no se encuentra o no hay datos
Else
'de existir usuarios, aqui tienes un ejemplo al trabajar con campos
C_Usuario = qry_snaps("login")

End If
qry_snaps.Close
Set db = Nothing
End Function

Espero le sea de utilidad
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