Visual Basic - Contraseñas

Life is soft - evento anual de software empresarial
 
Vista:

Contraseñas

Publicado por Tomas (1 intervención) el 16/06/2006 09:55:03
Estoy realizando una aplicacion en la que para acceder tengo que introducir un nombre de usuario y una contraseña los cuales estan almcenadas en una base de datos de access.

Además en la misma tabla de usuarios hay un campo que se llama nivel donde guardo nivel de usuarios y para permitir acceder a la aplicacion tengo que ver que los usuarios tengan nivel 10.

lo he intentado de la siguiente forma:

Private Sub cmdaceptar_Click()

If ((Data1.Recordset.Fields("Usuario").Value = txtusu.Text) And (Data1.Recordset.Fields("Clave").Value = txtcontra.Text) And (Data1.Recordset.Fields("Nivel").Value <= 10)) Then
Unload Me
principal.Show

Else
mensaje = MsgBox("No tienes permiso para entrar", vbExclamation, "Atencion")
End If


End Sub

meto datos correctos y me dice que no tengo permiso.
al parar el programa en un punto veo que el valor del recordset del campo usuario y contraseña es el valor del primer registro de tabla de access.

Soy un poco nuevo y si alguien puede ayudarme o enviarme un codigo para que lo vea se lo agradezco.
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:Contraseñas

Publicado por Nahuel (62 intervenciones) el 16/06/2006 10:00:06
Data1.recordset.fields("Usuario").value
el .value sobra, con data1.recordset.fields ("Usuario") = txtusu.text te tiene q ir directamente.
Por cierto, te recomiendo q uses el codigo oledb en vez de el componente data, buscalo en elguille.org, ya me lo agradeceras.
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:Contraseñas

Publicado por JAvi RM (187 intervenciones) el 16/06/2006 10:02:57
No será qu no estas recorriendo la tabla....
Poruqe si te aparece el primer registro ese será el motivo. Yo de ti realizaría una consulta SQL en la que el foltro fuese el usuario y contraseña directamente.

Yo te recomiendo ADODB.

Un Saludo.
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:Contraseñas

Publicado por manolo (239 intervenciones) el 16/06/2006 10:11:13
es que no mueves el recordset, podrías hacerlo con un bucle hasta EOF, pero yo la haría mejor así:
Data1.Recordset.FindFirst "Usuario='" & txtusu.Text & "'"
If Data1.Recordset.NoMatch Then
MsgBox "El usuario indicado no existe"

Else
Label1.Caption = Data1.Recordset.AbsolutePosition
(Data1.Recordset.Fields("Clave").Value = txtcontra.Text) And (Data1.Recordset.Fields("Nivel").Value <= 10)) Then
Unload Me

End If
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:Contraseñas

Publicado por manolo (239 intervenciones) el 16/06/2006 10:11:15
es que no mueves el recordset, podrías hacerlo con un bucle hasta EOF, pero yo la haría mejor así:
Data1.Recordset.FindFirst "Usuario='" & txtusu.Text & "'"
If Data1.Recordset.NoMatch Then
MsgBox "El usuario indicado no existe"

Else
Label1.Caption = Data1.Recordset.AbsolutePosition
(Data1.Recordset.Fields("Clave").Value = txtcontra.Text) And (Data1.Recordset.Fields("Nivel").Value <= 10)) Then
Unload Me

End If
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 sé porque lo ha repetido

Publicado por manolo (239 intervenciones) el 16/06/2006 10:18:40
quizá haya dado a alguna tecla que no debía.
bueno, iba a poner después del MsgBox una salida del Sub. Lo del Label olvídalo, era una prueba.
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