Problema con chequeo de bases
Estimado compatriota, solicito tu ayuda con una cuestión que me trae de cabeza. Utilizo el Visual Basic 6.0 Introduciendo nombre y password y si es correcto chequeado con una base de datos access 2000 te deja entrar y sino te da un mesaje y no te deja entrar. Pero no me acaba de funcionar creo que el error está en la siguiente linea:
if Adodc1.Recordset.Recorcount = 0 then
Igualándolo a 0 siempre me deja entrar, pero si lo igualo a 1 nunca me dejar entrar.
Te paso el código y si me haces el favor me dices donde está el error
Private Unidad As Long
Private limite As Long
Private Progreso As Long
Dim i As Long
Dim a As String
Dim B As String
Private Sub cmd_salir_Click()
Dim Mensaje, Estilo, titulo, respuesta
Mensaje = "¿Desea Salir?"
Estilo = vbYesNo
titulo = "Terminar"
respuesta = MsgBox(Mensaje, Estilo, titulo)
If respuesta = vbYes Then
Unload Me
Else
txt_nombre.SetFocus
Exit Sub
End If
Set principal = Nothing
Unload Me
End Sub
Private Sub txt_nombre_KeyPress(KeyAscii As Integer)
txt_nombre.Text = LTrim(txt_nombre.Text)
End Sub
Private Sub txt_nombre_LostFocus()
txt_nombre = Trim(StrConv(txt_nombre, vbProperCase))
End Sub
Private Sub txt_nombre_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
txt_nombre.ToolTipText = txt_nombre.Text
End Sub
Private Sub txt_password_LostFocus()
txt_password = Trim(StrConv(txt_password, vbProperCase))
End Sub
Private Sub cmdOK_Click()
Dim access As Variant
Dim access1 As Variant
Dim r As String
Dim c As String
Dim s As String
s = "Error"
On Error Resume Next
r = txt_nombre
a = txt_nombre
Adodc1.RecordSource = "select * from clave where password='" & txt_password & " ' "
Adodc1.RecordSource = "select * from clave where nombre=' " & txt_nombre & " ' "
Adodc1.Refresh
If Trim(txt_password.Text) = "" And Trim(txt_nombre.Text) = "" Then
MsgBox "Debe Ingresar Password/Nombre", vbOKOnly, Me.Caption
txt_nombre.SetFocus
Exit Sub
ElseIf Trim(txt_password) = "" Then
MsgBox "Debe Ingresar la Password", vbOKOnly, Me.Caption
txt_password.SetFocus
Exit Sub
ElseIf Trim(txt_nombre) = "" Then
MsgBox "Debe Ingresar el nombre", vbOKOnly, Me.Caption
txt_nombre.SetFocus
Exit Sub
End If
'LA LINEA CORRECTA CREO QUE ES = 1 YO LO CAMBIA PARA QUE TRAGARA PROVISIONALMENTE
If Adodc1.Recordset.RecordCount = 0 Then
access = "AUTORIZADO"
If Adodc1.Recordset.Fields!nombre = txt_nombre.Text And Adodc1.Recordset.Fields!Password = txt_password Then
c = Adodc1.Recordset.Fields!grupo
access = "AUTORIZADO"
frmprincipal.Show
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields!nombre = txt_nombre
Adodc2.Recordset.Fields!Password = txt_password
Adodc2.Recordset.Fields!fecha = Format(Now, "dd/mm/yyyy")
Adodc2.Recordset.Fields!hora! = Format(Time, "hh:mm:ss ")
Adodc2.Recordset.Fields!Status = access
Adodc2.Recordset.Fields!grupo = c
Adodc2.Refresh
Else
'este codigo es necesario cuando la password es correcta y el nombre es erroneo
MsgBox "Password/Nombre Erroneo, Acceso Denegado ", vbCritical, Me.Caption
access = "DENEGADO"
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields!nombre = r
Adodc2.Recordset.Fields!Password = txt_password
Adodc2.Recordset.Fields!fecha = Format(Now, "dd,mm,yyyy")
Adodc2.Recordset.Fields!hora! = Format(Time, "hh:mm:ss ")
Adodc2.Recordset.Fields!Status = access
Adodc2.Recordset.Fields!grupo = s
Adodc2.Refresh
txt_password.Text = ""
txt_nombre.Text = ""
txt_nombre.SetFocus
End If
Else
'este codigo se utiliza cuando la password y el nombre son erroneos
MsgBox "Password/Nombre Erroneo, Acceso Denegado ", vbCritical, Me.Caption
access = "DENEGADO"
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields!nombre = r
Adodc2.Recordset.Fields!Password = txt_password
Adodc2.Recordset.Fields!fecha = Format(Now, "dd,mm,yyyy")
Adodc2.Recordset.Fields!hora! = Format(Time, "hh:mm:ss ")
Adodc2.Recordset.Fields!Status = access
Adodc2.Recordset.Fields!grupo = s
Adodc2.Refresh
'
txt_password.Text = ""
txt_nombre.Text = ""
txt_nombre.SetFocus
End If
End Sub
Te rogaría que me echaras una manita
if Adodc1.Recordset.Recorcount = 0 then
Igualándolo a 0 siempre me deja entrar, pero si lo igualo a 1 nunca me dejar entrar.
Te paso el código y si me haces el favor me dices donde está el error
Private Unidad As Long
Private limite As Long
Private Progreso As Long
Dim i As Long
Dim a As String
Dim B As String
Private Sub cmd_salir_Click()
Dim Mensaje, Estilo, titulo, respuesta
Mensaje = "¿Desea Salir?"
Estilo = vbYesNo
titulo = "Terminar"
respuesta = MsgBox(Mensaje, Estilo, titulo)
If respuesta = vbYes Then
Unload Me
Else
txt_nombre.SetFocus
Exit Sub
End If
Set principal = Nothing
Unload Me
End Sub
Private Sub txt_nombre_KeyPress(KeyAscii As Integer)
txt_nombre.Text = LTrim(txt_nombre.Text)
End Sub
Private Sub txt_nombre_LostFocus()
txt_nombre = Trim(StrConv(txt_nombre, vbProperCase))
End Sub
Private Sub txt_nombre_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
txt_nombre.ToolTipText = txt_nombre.Text
End Sub
Private Sub txt_password_LostFocus()
txt_password = Trim(StrConv(txt_password, vbProperCase))
End Sub
Private Sub cmdOK_Click()
Dim access As Variant
Dim access1 As Variant
Dim r As String
Dim c As String
Dim s As String
s = "Error"
On Error Resume Next
r = txt_nombre
a = txt_nombre
Adodc1.RecordSource = "select * from clave where password='" & txt_password & " ' "
Adodc1.RecordSource = "select * from clave where nombre=' " & txt_nombre & " ' "
Adodc1.Refresh
If Trim(txt_password.Text) = "" And Trim(txt_nombre.Text) = "" Then
MsgBox "Debe Ingresar Password/Nombre", vbOKOnly, Me.Caption
txt_nombre.SetFocus
Exit Sub
ElseIf Trim(txt_password) = "" Then
MsgBox "Debe Ingresar la Password", vbOKOnly, Me.Caption
txt_password.SetFocus
Exit Sub
ElseIf Trim(txt_nombre) = "" Then
MsgBox "Debe Ingresar el nombre", vbOKOnly, Me.Caption
txt_nombre.SetFocus
Exit Sub
End If
'LA LINEA CORRECTA CREO QUE ES = 1 YO LO CAMBIA PARA QUE TRAGARA PROVISIONALMENTE
If Adodc1.Recordset.RecordCount = 0 Then
access = "AUTORIZADO"
If Adodc1.Recordset.Fields!nombre = txt_nombre.Text And Adodc1.Recordset.Fields!Password = txt_password Then
c = Adodc1.Recordset.Fields!grupo
access = "AUTORIZADO"
frmprincipal.Show
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields!nombre = txt_nombre
Adodc2.Recordset.Fields!Password = txt_password
Adodc2.Recordset.Fields!fecha = Format(Now, "dd/mm/yyyy")
Adodc2.Recordset.Fields!hora! = Format(Time, "hh:mm:ss ")
Adodc2.Recordset.Fields!Status = access
Adodc2.Recordset.Fields!grupo = c
Adodc2.Refresh
Else
'este codigo es necesario cuando la password es correcta y el nombre es erroneo
MsgBox "Password/Nombre Erroneo, Acceso Denegado ", vbCritical, Me.Caption
access = "DENEGADO"
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields!nombre = r
Adodc2.Recordset.Fields!Password = txt_password
Adodc2.Recordset.Fields!fecha = Format(Now, "dd,mm,yyyy")
Adodc2.Recordset.Fields!hora! = Format(Time, "hh:mm:ss ")
Adodc2.Recordset.Fields!Status = access
Adodc2.Recordset.Fields!grupo = s
Adodc2.Refresh
txt_password.Text = ""
txt_nombre.Text = ""
txt_nombre.SetFocus
End If
Else
'este codigo se utiliza cuando la password y el nombre son erroneos
MsgBox "Password/Nombre Erroneo, Acceso Denegado ", vbCritical, Me.Caption
access = "DENEGADO"
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields!nombre = r
Adodc2.Recordset.Fields!Password = txt_password
Adodc2.Recordset.Fields!fecha = Format(Now, "dd,mm,yyyy")
Adodc2.Recordset.Fields!hora! = Format(Time, "hh:mm:ss ")
Adodc2.Recordset.Fields!Status = access
Adodc2.Recordset.Fields!grupo = s
Adodc2.Refresh
'
txt_password.Text = ""
txt_nombre.Text = ""
txt_nombre.SetFocus
End If
End Sub
Te rogaría que me echaras una manita
Respuesta de robalvram
1