Tengo el Error 3705 en Visual Basic 6.0! ¿Alguien qué me ayude?

Resulta que tenemos que crear un programa donde se ingrese con usuarios. Bueno estamos trabajando con un bd, en la cual se guardan los usuarios y las contraseñas. El tema es que pones una vez la contraseña mal, te salta un MsgBox diciéndote que esta mal y se borra la caja de texto y el cursor queda posicionado ahí para volver a escribirla pero volvés a dar enter y salta el error 3705.

Respuesta
1

Ese error se muestra porque están intentando hacer una operación con un objeto recordset, por ejemplo: Sí intentas cerrarlo sin antes haber abierto dicho objeto.

Te recomiendo que uses el manejo de errores. Te dejo un ejemplo de código de VB6 con MS Access.

Public Function ExisteElUsuario(ByRef sUsuario As String, ByRef sContraseña As String) As Boolean
On Error GoTo Err_ExisteElUsuario
    Dim oRst As Object
    Dim sSQL As String
    sProcName = "ExisteElUsuario"
    ExisteElUsuario = False
    'RUTINA PARA EVITAR INYECCIONES DE CODIGO sSQL
    sUsuario = Replace(Replace(Replace(Trim(sUsuario), "'", ""), "*", ""), "=", "")
    sContraseña = Replace(Replace(Replace(Trim(sContraseña), "'", ""), "*", ""), "=", "")
    Set oRst = CreateObject("ADODB.Recordset")
    sSQL = "SELECT * FROM TBL_USUARIOS WHERE USU_USU='" & sUsuario & "' AND USU_CON='" & sContraseña & "';"
    oRst.Open sSQL, SvrCnx, adOpenDynamic, adLockOptimistic
    If oRst.BOF And oRst.EOF Then
        ExisteElUsuario = False
        MsgBox "Nombre de Usuario o Contraseña incorrectos.", vbInformation, sAppTitle
    Else
        IdUser = Trim(oRst.FIELDS("usu_ide"))
        Usuario = Trim(oRst.FIELDS("usu_usu"))
        Password = Trim(oRst.FIELDS("usu_con"))
        NivelUser = CInt(Trim(oRst.FIELDS("usu_per_ide")))
        sFullName = Trim(oRst.FIELDS("usu_nom")) & " " & Trim(oRst.FIELDS("usu_ape"))
        UserStatus = oRst.FIELDS("usu_hab")
        ExisteElUsuario = True
    End If
    If oRst.State <> 0 Then oRst.Close
    Set oRst = Nothing
Exit_ExisteElUsuario:
    Exit Function
Err_ExisteElUsuario:
    MsgBox Err.Number & " - " & Err.Description, vbCritical
    Resume Exit_ExisteElUsuario
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas