Variables tipo Recordset

Quisiera saber si puedes ayudarme con la siguiente inquietud:
Mira estoy realizando un pequeño formulario en Access 2000 en donde se ingresa el nombre de usuario y contraseña, para esto estoy utilizando el siguiente código:
Option Compare Database
Option Explicit
Private Sub cmdOk_Click()
On Error GoTo Err_cmdOk_Click
Dim Rst As Recordset
Dim Sql As String
Sql = "SELECT * FROM seguridad WHERE [Nombre]=" & "'" & Me.txtusuario & "'" _
& "AND [Password]=" & "'" & Me.txtpassword & "';"
Set Rst = CurrentDb.OpenRecordset(Sql, dbOpenDynaset)
If Rst.EOF = False Then
Dim itemmenu As CommandBarControls
Set itemmenu = CommandBars("MnuProlab").Controls("Analíticas")
If Rst("Analíticas") = False Then
itemmenu.Enable = False
End If
Else
MsgBox "Usuario y/o contraseña no son válidos.", vbCritical, "Error de autentificación"
Rst.Close
Set Rst = Nothing
DoCmd.Quit
End If
Rst.Close
Set Rst = Nothing
DoCmd.OpenForm "Educacion"
DoCmd.Close acForm, "seguridad"
Exit_cmdOk_Click:
Exit Sub
Err_cmdOk_Click:
MsgBox Err.Description
Resume Exit_cmdOk_Click
End Sub
Al momento de compilarlo me da un error que me dice que NO ESTA DEFINIDA LA VARIABLE en la linea:
Set Rst = CurrentDb.OpenRecordset(Sql, dbOpenDynaset)
¿Me puedes ayudar? No se que hacer
Respuesta
1
Para empezar
¿CurrentDB esta seteada? ¿Y abierta?
Tal vez sea eso...
Cualquier cosa me vuelves a preguntar
A ver...
¿Currentdb es del tipo database?
O es adodc. Connection...
tal vez sea eso...
Prueba poniendo el nombre real de la base de donde tiene que tomar los datos...
Solamente para una prueba a ver si lo otro funciona...
U otro consejo... estas mirando en la tabla para ver el password...
Dynaset te permite editar la tabla...
Porque no la abres directamente como forwardonly
O alguno de los otros métodos de solo lectura...
Que es lo que vas a hacer para comparar el usuario y el password...
No necesitas escribir nada
Es solo un consejo
Espero que te sirva...
Cualquier otra duda vuelve a preguntar...
Y no tienes nada de ignorante si hubieras leído algunas de las preguntas que hice yo... ya me pongo colorado =)
Ezequiel..
Gracias por tu respuesta, sabes al momento de querer crear mi variable tipo Database me aparece el mensaje de que LA VARIABLE NO ESTA DEFINIDA POR EL USUARIO, ¿crees qué sea problema de librerías?, la verdad no tengo idea de que pueda ser.
A ver...
Cuando pones la variable
dim db as database ..
¿Te aparece en la opción del as database?
Porque si no tienes que agregar la referencia a:
MS ado object library ... la mas avanzada que tengas...
a ver si es eso
Bingo!... eran las librerías, pero ahora tengo otro problema. Me da un error de que NO COINCIDEN LOS TIPOS en la linea:
Set Rst = CurrentDb.OpenRecordset(Sql, dbOpenDynaset)
Disculpa la ignorancia...
¿Ha a ver que estas usando?
Tal vez estas usando ado
Para ado no se declara distinto el recordset
Seria algo así como
dim rst as adodc.recordset
:(
Te cuento que no he podido soluciona el problema, ¿qué más puedo hacer?, ¿Crees qué sea problema de la base de datos o de alguna otra librería?...
En esa misma linea me da el error, incluso he intentado utilizando las diferentes opciones de lectura pero me da el mismo error..
Ezequiel si era ese el problema el tipo declarado tenia que ser DAO. Recordset, con eso ya no me da problemas.
Muchas Gracias.
Si tengo algún otro problema no dudes que recurriré a ti! jajajaja... si no te molesta...
Cualquier problema... no dudes en volver a preguntar
finaliza la pregunta por favor =)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas