Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Nicola,
tabella T_users da creare sul BE e da collegare sugli FE naturalmente.
campi:
nameUser testo,
nameComputer testo,
LoginTime, data/ora
logoutTime data/ora.
macro autoexec da creare su FE :
azione esegui codice, nome funzione login()
codice del pulsante che chiuderà il DB:
Private Sub cmdQuit_Click()
logoOut
DoCmd.Quit
End Sub
modulo standard da copiare nel FE:
Option Compare Database
Option Explicit
'//API Declarations
Private Declare PtrSafe Function GetComputerName Lib "Kernel32" Alias "GetComputerNameA" (ByVal Buffer As String, BufferSize As Long) As Long
Private Function GetPcName() As String
Dim ComputerName As String * 255
Dim NameSize As Long
Dim RetVal As Long
NameSize = Len(ComputerName)
RetVal = GetComputerName(ComputerName, NameSize)
If RetVal > 0 Then
GetPcName = Left$(ComputerName, NameSize)
Else
GetPcName = vbNullString
End If
End Function
Public Function login()
CurrentDb.Execute "insert into T_users (nameUser,nameComputer,loginTime)" & _
"values ('" & Environ("UserName") & "','" & _
GetPcName & "',#" & Now & "#)", dbFailOnError
End Function
Public Sub logoOut()
CurrentDb.Execute "update T_users set logoutTime=#" & Now & _
"# where nameUser='" & Environ("UserName") & "' and nameComputer='" & GetPcName & "'", dbFailOnError
End Sub
all'apertura del DB la tabella T_users sarà popolata in base a chi si logga, user, pc e ora del login (funzione login lanciata con la macro autoexec), alla chiusura aggiorni data e ora del logout dell'utente che effettua il logout,.
Gli utenti connessi sono coloro che hanno null nel campo logout della tabella T_users.
ciao, Sandro.