Newsgroup: it.comp.appl.access
Titolo: Contare utenti loggati sul database

Quando si apre un database in condivisione viene generato il file ldb con 
i lock.
L'ultimo utente che chiude il database rimuove il file.
So che esiste una dll che permette in qualche modo di interpretarlo ma 
visto che chi rimuove sa che non ci sono altri online (e lo fa senza la 
dll), ci dovrebbe essere modo da codice di capire chi, ma soprattutto 
quante sessioni hanno il database aperto in un determinato momento.
Lasciamo perdere le eccezioni rare legate a problemi vari (disconnessioni 
improvvise ecc.), come potrei sapere da codice quanti utenti stanno 
teoricamente usando il database?
Gestire un apposito flag in autonomia se posso lo evito.

Paolo Holzl ha scritto:



Vedi se questo può essere di aiuto:
http://support.microsoft.com/kb/285822/
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Scusate se mi intrometto...
la funzione trovata nel sito microsoft
Sub ShowUserRosterMultipleUsers()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i, j As Long
    Set cn = CurrentProject.Connection
    ' The user roster is exposed as a provider-specific schema rowset
    ' in the Jet 4.0 OLE DB provider.  You have to use a GUID to
    ' reference the schema, as provider-specific schemas are not
    ' listed in ADO's type library for schema rowsets
    Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
    , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
    'Output the list of all users in the current database.
    Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, _
    "", rs.Fields(2).Name, rs.Fields(3).Name
    While Not rs.EOF
        Debug.Print rs.Fields(0), rs.Fields(1), _
        rs.Fields(2), rs.Fields(3)
        rs.MoveNext
    Wend
End Sub
funziona in maniera egregia, ma il risultato viene scritto solo sulla
finestra immediata del vba.
Come faccio ad inserirla in una maschera, tabella o report?
Grazie!!

 Grazie!!
===========================================
Sub ShowMultipleUsers()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim LoggedUsers As DAO.Recordset
CurrentDb.Execute "DELETE t_LoggedUsers.* FROM t_LoggedUsers;"
Set LoggedUsers = CurrentDb.OpenRecordset("t_LoggedUsers", dbOpenDynaset)
Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
    , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
Do Until rs.EOF
    With LoggedUsers
        .AddNew
        ![Computer_Name] = Trim(rs.Fields(0))
        ![Login_Name] = Trim(rs.Fields(1))
        ![Connected] = rs.Fields(2)
        ![Suspect_State] = Nz(rs.Fields(3), "Null")
        .Update
    End With
    rs.MoveNext
Loop
End Sub
===========================================
Avendo creato la tabella t_LoggedUsers coi campi:
Computer_Name, Text (255)
Login_Name, Text(255)
Connected, Yes/No
Suspect_State, Text(255)
Bruno 

Grazie Bruno,
il tutto funziona alla grande!!
Emiliano

 Emiliano
Su accessgroup sarà pubblicato il codice per leggere il file .ldb
ciao
-- 
Roberto da Parma 

 Su accessgroup sarà pubblicato il codice per leggere il file .ldb
Jetutils.exe scaricabile dalla Microsoft contiene anche Ldbview.exe.
Bruno 

 ha scritto nel messaggio 
news:49b63e51$0$1105$4faf...@reader4.news.tin.it...

come posso verificare i loggati ad un altro DB?
grazie
Max