Ermitteln, wer bei einer Datenbank angemeldet ist, mithilfe von Microsoft Jet UserRoster in Access

Erweitert: Erfordert Expertenkenntnisse für Codierung, Interoperabilität und Mehrbenutzerfähigkeiten.

Dieser Artikel bezieht sich auf eine Microsoft Access-Datenbankdatei (.MDB) oder eine Microsoft Access-Datenbankdatei (.ACCDB).

Zusammenfassung

In diesem Artikel erfahren Sie, wie Sie microsoft Visual Basic for Applications verwenden, um eine Liste von Benutzern auszugeben, die bei einer Datenbank angemeldet sind.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Mitarbeiter der Microsoft Product Support Services erklären Ihnen gerne die Funktionsweise einer bestimmten Prozedur. Die Mitarbeiter werden diese Beispiele jedoch weder modifizieren, um zusätzliche Funktionalität zu schaffen, noch Prozeduren entwickeln, die auf Ihre spezifischen Bedürfnisse zugeschnitten sind.

Wenn Sie den folgenden Beispielcode verwenden, werden die folgenden Informationen zurückgegeben:

  • Computername.
  • Anmeldename.
  • Gibt an, ob der Benutzer derzeit mit der Datenbank verbunden ist. (Die ID eines Benutzers verbleibt in der Sperrdatenbank, bis der letzte Benutzer die Verbindung trennt oder bis der Slot für eine neue Benutzerverbindung freigegeben wird.)
  • Gibt an, ob die Benutzerverbindung unter normalen Umständen beendet wurde.

Diese Informationen können auch verwendet werden, um Probleme mit Datenbankbeschädigungen zu isolieren, die mit den Aktivitäten eines bestimmten Benutzers verbunden sind.

Verfahren

Achtung

Wenn Sie die Schritte in diesem Beispiel ausführen, ändern Sie die Beispieldatenbank Northwind.mdb. Möglicherweise möchten Sie die Northwind.mdb-Datei sichern und die folgenden Schritte für eine Kopie der Datenbank ausführen.

Führen Sie die folgenden Schritte aus, um zu ermitteln, wer bei einer Datenbank angemeldet ist:

  1. Öffnen Sie die Beispieldatenbank, Northwind.mdb.

    Hinweis Öffnen Sie in Access 2007 die Beispieldatenbank Northwind2007, schließen Sie die Beispieldatenbank Northwind2007, und öffnen Sie dann die Beispieldatenbank Northwind2007 erneut.

  2. Zeigen Sie im Menü Ansicht auf Datenbankobjekte, und klicken Sie dann auf Module.

    Hinweis Klicken Sie in Access 2007 auf der Registerkarte Datenbanktools in der Gruppe Makro auf Visual Basic.

  3. Klicken Sie auf Neu.

    Hinweis Klicken Sie in Access 2007 im Visual Basic-Editor im Menü Einfügen auf Modul.

  4. Geben Sie den folgenden Code ein, oder fügen Sie ihn ein:

    Hinweis Der Beispielcode in diesem Artikel verwendet Microsoft ActiveX Data Objects. Damit dieser Code ordnungsgemäß ausgeführt werden kann, müssen Sie auf die Microsoft ActiveX Data Objects-Bibliothek 2.1 oder höher verweisen. Klicken Sie dazu im Visual Basic-Editor im Menü Extras auf Verweise, und stellen Sie sicher, dass das Kontrollkästchen Microsoft ActiveX-Datenobjekte 2.1-Bibliothek aktiviert ist.

    Sub ShowUserRosterMultipleUsers()
        Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
    
        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
    
  5. Speichern Sie das Modul als ShowUsers.

  6. Drücken Sie STRG+G, um das Direktfenster zu öffnen.

  7. Geben Sie im Direktfenster die folgende Zeile ein, und drücken Sie dann die EINGABETASTE:

    ShowUserRosterMultipleUsers
    
    

    Beachten Sie , dass das Direktfenster eine Liste der Benutzer zurückgibt, die bei der Datenbank angemeldet sind.