Newsgroup: it.comp.appl.access
Titolo: File di log utenti database

Buongiorno a tutto il NG !
Ho cercato di utilizzare un suggerimento trovato in archivio per
realizzare quanto in oggetto e più precisamente come segue:
Creare una tabella con la seguente struttura:
ID_Record  (Contatore)
NomeUtente (Testo lungo 20 caratteri)
Login       (Data/Ora)
LogOut       (Data/Ora)
che chiamerai, supponiamo, LogAccessi
Poi scrivi un modulo nel quale inserisci il seguente codice:
'--------- Inizio codice ---------------------------------------------
' Dichiara una variabile pubblica per memorizzare il puntatore al 
' record della tabella di log inserito al momento del login
Public ID_Record_Log As Long
' Funzione per registrare il login
Function RegistraLogin() As Long
Dim rs As RecordSet
  RegistraLogin = 0
  ' Apre la tabella di registrazione accessi
  Set rs = currentdb.openrecordset("LogAccessi")
  With rs
    ' Aggiunge un nuovo record alla tabella
    .AddNew
    ![NomeUtente]=CurrentUser()
    ![Login] = Now()
    .Update
    ' Si posiziona sul record appena creato
    .Bookmark = .LastModified
    RegistraLogin = ![ID_Record]
    .Close
  EndWith
  Set rs = Nothing
End Function
' Subroutine per registrare il logout
Sub RegistraLogOut(pID As Long)
Dim rs As RecordSet
  ' Apre la tabella di registrazione accessi
  Set rs = CurrentDb.OpenrecordSet("SELECT * From [LogAccessi] WHERE
[ID_Record] = " & pID)
  With rs
    .Edit
    ![LogOut]=Now()
    .Update
 
    .Close
  End With
 
  Set rs = Nothing
End Sub
'----- Fine codice ---------------------------------------------------
A questo punto, nella routine associata all'evento "SuApertura" della
prima form che apri quando esegui la tua applicazione, scrivi
ID_Record_Log = RegistraLogin()
Infine, nella routine associata all'evento "SuChiusura" dell'ultima
form che chiudi quando esci dalla tua applicazione, scrivi
RegistraLogout(ID_Record_Log)
Non riesco ad identificare alcuni passaggi quali :
1) La dichiarazione della variabile pubblica ...come fare (ho messo in
un modulo vuoto la stringa)
2) La parte di login scrive in tabella se eseguita dal modulo mentre
dalla maschera la stringa "ID_Record_Log = RegistraLogin()" non me la fa
utilizzare.
3) La parte di logout non funzione nemmeno da modulo
Fermo restando la mia ignoranza in materia mi potreste dare una mano a
capire per favore?
Grazie anticipate per ogni suggerimento!
Paolo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 un modulo vuoto la stringa)
In un modulo, dopo option explicit, scrivi
Global Nomevar as tipovar
Forse il resto dei problemi dipende da quello.
Antonio

 wrote in message
news:U117a.156518$
YG2.4...@twister1.libero.it

Grazie Antonio per la risposta, ho seguito quanto indicato ma permane il
fatto che il login lo scrive in tabella ma il logout no e non riesco a
capire il perche.
Forse hai una soluzione diversa da quella da me intrapresa?
Ti ringrazio per la pazienza
Con la buona serata


 capire il perche.
Secondo me ci manca la
rs.movefirst
Tu hai solo aperto il recordset, ma, mentre per fare una addnew, come nel
caso login, non devi metterti sul primo record, nel caso logout, l'apertura
del recordset sull'unico record filtrato, NON ti posiziona su quel record,
ma sul BOF.
Quindi, per editarlo, devi posizionartici con la movifirst
Antonio

 ha scritto nel messaggio
news:yEI7a.164128$ZE.48...@twister2.libero.it...

Grazie Antonio ora provo a seguire quanto hai indicato che credo sia molto
sensato e cosi spero di risolvere il problema.
Ti auguro una buona serata con i doverosi e ringraziamenti!
Ciao bte
Paolo