Imprimir página | Cerrar ventana

Acces No funciona

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84286
Fecha de impresión: 22/Mayo/2019 a las 11:47


Tema: Acces No funciona
Publicado por: CacoMarco
Asunto: Acces No funciona
Fecha de publicación: 11/Febrero/2019 a las 18:42
Estimados, buenas tardes, cuando mi aplicación Access 2016 dejó de funcionar por sugerencia de algunos sitios en internet actualizé la versión del Office365, como el problema seguía, reinstalé nuevamente el office y el problema persistía. Pero era extraño porque a veces si podía ingresar y otras no en el cual Acces me entregaba el mensaje "Microsoft Acces dejó de funcionar".
Mi aplicación comienza con un formulario de Login el cual es una copia que saqué de un video de YouTube "Access desde Cero" y que lamentablemente no tengo el nombre del autor quien tiene varios tutoriales de gran ayuda.
El tema es que cuando le doy a la tecla entrar una vez digitadas las credenciales es cuando se "cae" mostrándome el mensaje que dejó de funcionar. LO curioso es que si ingreso directamente a la BD sin pasar por el Formulario Login el cual quité como formulario que muestra al abrir la aplicación, ahí sí puedo acceder a la aplicación y funciona perfectamente.
Entonces, mi conclusión es que algo en el código del form Login podría estar causando el problema. Por esa razón acudo a ustedes si detectan algún problema en el código porque para mi eso es dificultoso de saber.

Básicamente el formulario pide un usuario y contraseña y su código es el siguiente:

Option Compare Database
Option Explicit

Private Sub Comando1_Click()
Dim OnOfRibbon As Integer
Dim OnOfShift As Integer

If IsNull(Me.txtUsuario) Then
        MsgBox "Por favor, escriba su Usuario", vbInformation, "Usuario requerido"
        Me.txtUsuario.SetFocus
    ElseIf IsNull(Me.txtPass) Then
        MsgBox "POR FAVOR, INGRESE CONTRASEÑA ..", vbInformation, "CONTRASEÑA REQUERIDA"
        Me.txtPass.SetFocus
    Else
        If (IsNull(DLookup("[Usuario]", "Usuarios", "[Usuario] ='" & Me.txtUsuario.Value & _
        "' And Pass = '" & Me.txtPass.Value & "'"))) Then
            MsgBox "USUARIO Y/O CONTRASEÑA INCORRECTOS ...", vbCritical, "ACCESO DENEGADO"
        Else
            OnOfShift = DLookup("Activar_Shift", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            OnOfRibbon = DLookup("Mostrar_Cinta_Opciones", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            UserLevel = DLookup("Admin", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            IPR = DLookup("IngresaPresupuesto", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            CCO = DLookup("ComponentesCotizados", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            RCO = DLookup("RepuestosCotizados", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            OTC = DLookup("OTCenSistema", "Usuarios", "Usuario = '" & Me.txtUsuario.Value & "'")
            
            'Validación para Desactivar/Activar tecla Shift
            If OnOfShift = -1 Then
                    TeclaShift "AllowBypassKey", dbBoolean, True
                Else
                    TeclaShift "AllowBypassKey", dbBoolean, False
            End If
                        
                            'Validación para Mostrar/Ocultar la Cinta de Opciones
                            If OnOfRibbon = -1 Then
                                    DoCmd.ShowToolbar "Ribbon", acToolbarYes
                                Else
                                    DoCmd.ShowToolbar "Ribbon", acToolbarNo
                            End If
            
            'Validación para identificar al Administrador
            If UserLevel = -1 Then
                    LogedUser = Me.txtUsuario.Value
                    DoCmd.Close
                    'DoCmd.OpenForm "FrmPortada"
                    DoCmd.OpenForm "Menu_Principal"
                Else
                    LogedUser = Me.txtUsuario.Value
                    DoCmd.Close
                    'DoCmd.OpenForm "FrmPortada"
                    DoCmd.OpenForm "Menu_Principal"
            End If
    End If
End If

End Sub

Private Sub Form_Load()


TeclaShift "AllowBypassKey", dbBoolean, False 'Desactiva la tecla Shift
DoCmd.ShowToolbar "Ribbon", acToolbarNo 'Oculta la Cinta de Opciones
    
    Me.txtUsuario.SetFocus

End Sub

 Las variables que aparecen son públicas y están creadas en un módulo de esta forma:

Public vForm As String
Public UserLevel As Integer
Public LogedUser As String
Public IPR, CCO, RCO, OTC As Boolean

Gracias a todos,



-------------
CacoMarco/Chile



Respuestas:
Publicado por: CacoMarco
Fecha de publicación: 11/Febrero/2019 a las 18:55
Olvidé citar la estructura de la tabla Usuarios:
Nombre del Campo Tipo de datos
ID_USUARIO Autonumeración (clave principal)
Nombre_Usuario Texto Largo
Usuario Texto Corto
Pass Texto Corto
Admin Si/NO
UsuariosData SI/NO
IngresoalSistema SI/NO
IngresaPresupuesto SI/NO
ComponentesCotizados SI/NO
RepuestosCotizados SI/NO
OTCenSistema SI/NO
StockOTC SI/NO
Mostrar_Cinta_Opciones SI/NO
Activar_Shift SI/NO


Marcos R





-------------
CacoMarco/Chile


Publicado por: xavi
Fecha de publicación: 11/Febrero/2019 a las 19:06
Hola,

Pon un Stop al inicio del procedimiento y ejecuta paso a paso. Por lo menos sabrás/sabremos en que linea se cae y será más fácil dar con una solución.

Un saludo



-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: CacoMarco
Fecha de publicación: 13/Febrero/2019 a las 00:23
Gracias por responder Xavi, hice lo que me has recomendado y no se cae.
Además, depuré la aplicación (compilación) y tampoco me dió ningún error.
No obstante, y como mencioné antes no ingreso a la aplicación con ese formulario Login y todo funciona bien.
Voy a tener que ver una nueva forma de crear un login que no me de problemas. Cualquier sugerencia será bien venida.
Gracias de todos modos se agradece mucho vuestro tiempo.

Favor cerrar el hilo.


-------------
CacoMarco/Chile


Publicado por: mounir
Fecha de publicación: 13/Febrero/2019 a las 01:20
Hola!

Por opinar, no será porque declaras las variables OnOfRibbon y nOfShift) como Integer, mientras en el DLookUp podría ser tipo Texto?

-------------
Un Saludo.


Publicado por: CacoMarco
Fecha de publicación: 13/Febrero/2019 a las 01:48
Mounir, fíjate que pequeño y gran detalle.
Corregí el tipo de variable y ya está !!!
:)

Un montón de gracias Thumbs Up
Ahora si, favor cerrar el hilo.


-------------
CacoMarco/Chile



Imprimir página | Cerrar ventana