Log delle attività su un Db Access

Anonimo
2015-06-21T19:30:36+00:00

Dovrei far usare un database per degli inserimenti e delle  modifiche in access 2010

avrei però bisogno di conoscere il numero degli inserimenti fatti o almeno di conoscere i tempi di di apertura del database e le operazioni effettuate dagli users, perchè in base a questi tempi gli stessi devono essere remunerati

Quindi occorre una maschera di login nome utente e password

ed una tabella in cui viene registrato ogni accesso, il tipo di operazione effettuata, l'orario di entrata e l'orario di uscita, con la possibilità di gestire anche i cambi di password e di aggiungere nuovi utenti. Una maschera di login con i permessi.

Vorrei sapere come iniziare e crdo che è necessario l'utilizzo di codice visual basic

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

42 risposte

Ordina per: Più utili
  1. Anonimo
    2015-06-25T16:06:25+00:00

    Ciao,

    premesso che non ho mai realizzato qualcosa del genere,

    su ogni maschera hai le proprietà dopo aggiornamento, dopo inserimento e dopo conferma eliminazione.

    Puoi richiamare in questi eventi la funzione di Log delle attività svolte.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-06-25T12:46:27+00:00

    Ho fatto la tabella , come faccio a stabilire quando deve aggiornare a inserimento, aggiornamento o cancellazione ?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-06-25T10:49:05+00:00

    Per effettuare l'inserimento delle singole attività potrebbe convenire realizzare una funzione a cui passare di volta in volta i parametri da registrare (Sessione_Id,"Inserimento","tblFatture"

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-06-25T10:22:01+00:00

    Cambia la routine di chiusura con:

    Private Sub Form_Close()

        If mblnOk Then

           DoCmd.RunSQL "Update Table1 Set Fine = Now() Where Login = '" & Me.txtNomeUtente & "' And Fine Is Null"

       End If

       Me.Application.Quit

    End Sub

    In modo di chiudere sempre il DB.

    Se vuoi gestire anche le attività effettuate nella sessione di lavoro, puoi creare una nuova tabella:

    tblAttività

    Att_Id           'Contatore PK

    Att_Sess_Id   'Id della tabella delle sessioni FK

    Att_Tipo        'Inserimento/Aggiornamento/Cancellazione

    Att_Tabella    'Tabella coinvolta

    Ovviamente nel DB ad ogni operazione devi aggiornare la nuova tabella inserendo una nuova entrata.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-06-25T09:58:33+00:00

    Questa la versione funzionante con qualche lieve modifica, ma Mimmo57 è stato bravissimo

    Private Sub cmdOK_Click()

    On Error GoTo ErrorHandler

    Dim db  As DAO.Database

    Dim sql As String

    Dim rst As DAO.Recordset

      If Len("" & Me.txtNomeUtente.Value) = 0 Or Len("" & Me.txtPassword.Value) = 0 Then

        MsgBox "Inserire Nome Utente e Password!"

      Else

        Set db = CurrentDb

        sql = "SELECT *" & _

              " FROM Nomi" & _

              " WHERE [Nome utente]='" & Me.txtNomeUtente.Value & "';"

        Set rst = db.OpenRecordset(sql)

        With rst

          If .BOF And .EOF Then

            ' Nessun record

          Else

            mblnOk = .Fields("Password").Value = Me.txtPassword.Value

          End If

        End With

        If mblnOk Then

          DoCmd.RunSQL "INSERT INTO Table1 ( Login, Inizio, Fine ) SELECT '" & Me.txtNomeUtente & "', Now(), Null"

          MsgBox "OK" '<--- Sostituire con apertura maschera principale ---

        Else

          MsgBox "Nome Utente inesistente o Password errata."

        End If

      End If

    ExitProcedure:

        On Error Resume Next

        rst.Close

        Set rst = Nothing

        Set db = Nothing

        Exit Sub

    End Sub

    Private Sub Form_Close()

        If mblnOk Then

         DoCmd.RunSQL "Update Table1 Set Fine = Now() Where Login = '" & Me.txtNomeUtente & "' And Fine Is Null"

       Else

          Me.Application.Quit

        End If

    End Sub

    L'unica cosa però non si chiude l'applicazione, ma solo la maschera di accesso, e inoltre si può incrementare anche con la registrazione di una operazione tipo l'apertura di una maschera ?

    Un'altra cosa mi conviene far aprire il database o unire il database di accesso con tutto il resto ?

    La risposta è stata utile?

    0 commenti Nessun commento