General

6.157 Determinare l'elenco degli utenti collegati ad un database Access multiutenza
  Alessandro Baraldi, Marco Fontana

Qui di seguito è indicato un codice VBA inviato da Marco Fontana e che permette di elencare in una casella di riepilogo gli utenti collegati ad un database Access multiutenza:
Dim strread As String
Dim lung As Integer
Dim nome As String
Dim nome1 As String
Dim nome2 As String
Dim IDX As Integer
Dim IDX1 As Integer
For idx1 = 0 To (lst_utenti.ListCount - 1)
lst_utenti.RemoveItem (IDX)
Next idx1
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("db1.ldb", ForReading, TristateFalse)
strread = f.readline
IDX = 1
Do While (IDX * 32) < Len(strread)
nome = Trim(Mid(strread, (32 * IDX), 32))
nome1 = Replace(nome, Chr(0), "")
lst_utenti.AddItem Item:=(nome1)
IDX = IDX + 2
Loop
f.Close
Naturalmente la casella di riepilogo si chiama lst_utenti.

In alternativa a questa soluzione Alessandro Baraldi ci ha inviato, per elencare gli utenti collegati, il seguente codice VBA:
Function ShowUserRosterMultipleUsers(strSourceDB as string)
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i, j As Long
 
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open "Data Source=" & strSourceDB 
 
    ' The user roster is exposed as a provider-specific schema rowset
    ' in the Jet 4 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 Function

Ambedue le soluzioni possono essere eseguite con Access 2000 e versioni successive.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.