viernes, 8 de noviembre de 2013

Complemento del examen practico - Acces y Visual Basic.

ACCES Y VISUAL BASIC

Visual Basic es un lenguaje de programacion muy potente que nos permite realizar cosas increibles si lo combinamos con Acces, para este ejercicio vamos a crear un modulo de login que muestre segun sea el tipo de usuario un formulario completamente distinto segun el tipo de usuario.  

Observa el siguiente video:


Sigue los pasos necesarios para crear el loguin propuesto en el video, posteriormente debes hacer que  el administrador, el usuario 2 y el usuario 3 abran un formulario de los que estas manejando en el examen.

Codigo de soporte:

Option Compare Database
Option Explicit
Dim numintentos As Integer

Private Sub cmdentrar_Click()
     Dim auxcontraseña As String
    
     'Comprobando que hay datos en las cajas de texto
     If Nz(Me.TxtLogin.Value, "") = "" Then
         MsgBox "Seleccione un nombre de usuario de la lista para acceder", vbInformation, "ATENCION"
         Me.TxtLogin.SetFocus
     ElseIf Nz(Me.TxtPassword.Value, "") = "" Then
             MsgBox "Introduzca la contraseña del usuario seleccionado", vbInformation, "ATENCION"
             Me.TxtPassword.SetFocus
       Else
       If Nz(DLookup("Password", "Usuarios", "Id_usuario=" & Me![TxtLogin]), "") <> "" Then
            auxcontraseña = (DLookup("Password", "Usuarios", "Id_usuario=" & Me![TxtLogin]))
       End If
      
       If auxcontraseña <> Me.TxtPassword.Value Then
       If numintentos > 2 Then
           numintentos = numintentos - 1
           MsgBox "La contraseña intrucida es incorrecta" & vbCrLf & _
           "Le quedan " & numintentos & " intentos" & vbCrLf & vbCrLf & _
           "Por favor, introduzca otra", vbExclamation, "CONTRASEÑA INCORRECTA"
           Me.TxtPassword.Value = ""
           Me.TxtPassword.SetFocus
       
        Else
           MsgBox "Ha superado el número de intentos", vbCritical, "Gracias.."
           DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
        End If
       
    Else
      If DLookup("id_acceso", "Usuarios", "Id_usuario=" & Me![TxtLogin]) = 1 Then
     
            MsgBox "Ha entrado el administrador, mostramos todas las tablas", vbInformation, "BIENVENIDO ADMINISTRADOR"
            Call Admin
           
        Else
              MsgBox "Ha entrado un usuario, ocultamos las tablas", vbInformation, "BIENVENIDO USUARIO"
              Call usuario
   
       End If
              'docmd.openform stdocname, , , stlinkcristeria 'abrimos el formulario correspondiente
              DoCmd.Close acForm, Me.Name ' y cerramos el de acceso
             
    End If
End If
End Sub
Function Admin()
On Error GoTo admin_err

      DoCmd.OpenForm "Admin", acNormal, "", "", , acNormal
     
     
admin_exit:
    Exit Function
   
admin_err:
    MsgBox Error$
    Resume admin_exit
   
End Function
Function usuario()
On Error GoTo usuar_err

    DoCmd.OpenForm "usuario", acNormal, "", "", , acNormal
   
usuar_exit:
    Exit Function

usuar_err:
    MsgBox Error$
    Resume usuar_exit
End Function

Private Sub Detalle_Click()

End Sub

Private Sub Fc_ingreso_Click()

End Sub

Private Sub Form_Current()

End Sub