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
Respuesta
1
Te comento, más o menos me parece que tus fallos pueden venir por la comparación que estas haciendo. Desde luego lo evidente creo que es, el que para entrar al sistema el nombre y la password tienen que estar en la BD; luego la comparación será que "adodc.recordcount=1" no a 0 como lo estas haciendo. El caso es que para hacer esta comparación deberías comprobar si adodc1. Recordcount=1 y para que esta propiedad te devuelva una valor correcto debes decir que el recordset sea de tipo "static" sino puede devolverte en general -1.
Prueba a abrir bien el recordset, o ajustar las propiedades de tu control ado y a comprobar esa propiedad recordcount de manera correcta.
Estimado experto, he probado lo que me indicas pero no veo el fallo. Si hicieras el favor de pasarme tu correo, te pondría mandar la pequeñita aplicación ( ya que primero lo pruebo y después lo implemento en la real que estoy desarrallando) para que tu la corras y me puedas indicar porque no me sale.
P.D. La verdad no sé si es mucho "morro" por mi parte lo que te esoy pidiendo...
Un saludo
Mandamela si quieres a [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas