Bepalen wie is aangemeld bij een database met behulp van Microsoft Jet UserRoster in Access

Geavanceerd: vereist professionele codering, interoperabiliteit en vaardigheden voor meerdere gebruikers.

Dit artikel is van toepassing op een Microsoft Access-databasebestand (.mdb) of op een Microsoft Access-databasebestand (.accdb).

Samenvatting

In dit artikel wordt beschreven hoe u Microsoft Visual Basic for Applications gebruikt om een lijst met gebruikers uit te voeren die zijn aangemeld bij een database.

Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. Ondersteuningsmedewerkers van Microsoft kunnen helpen bij de uitleg over de functionaliteit van een bepaalde procedure. Deze medewerkers zullen de voorbeelden echter niet aanpassen om extra functionaliteit toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.

Wanneer u de volgende voorbeeldcode gebruikt, wordt de volgende informatie geretourneerd:

  • Computernaam.
  • Aanmeldingsnaam.
  • Of de gebruiker momenteel is verbonden met de database. (De id van een gebruiker blijft in de vergrendelingsdatabase totdat de laatste gebruiker de verbinding verbreekt of totdat de sleuf opnieuw wordt gebruikt voor een nieuwe gebruikersverbinding.)
  • Of de gebruikersverbinding onder normale omstandigheden is beĆ«indigd.

Deze informatie kan ook worden gebruikt om problemen met databasebeschadiging te isoleren die is gekoppeld aan de activiteiten van een specifieke gebruiker.

Procedure

Voorzichtigheid

Als u de stappen in dit voorbeeld volgt, wijzigt u de voorbeelddatabase Northwind.mdb. Mogelijk wilt u een back-up maken van het Northwind.mdb-bestand en deze stappen uitvoeren op een kopie van de database.

Voer de volgende stappen uit om te bepalen wie is aangemeld bij een database:

  1. Open de voorbeelddatabase Northwind.mdb.

    Opmerking Open in Access 2007 de voorbeelddatabase Northwind2007, sluit de voorbeelddatabase Northwind2007 en open vervolgens de voorbeelddatabase Northwind2007 opnieuw.

  2. Wijs in het menu Beeld de optie Databaseobjecten aan en klik vervolgens op Modules.

    Opmerking Klik in Access 2007 op Visual Basic in de groep Macro op het tabblad Hulpmiddelen voor databases .

  3. Klik op Nieuw.

    Opmerking Klik in Access 2007 op Module in het menu Invoegen in de Visual Basic-Editor.

  4. Typ of plak de volgende code:

    Opmerking De voorbeeldcode in dit artikel maakt gebruik van Microsoft ActiveX-gegevensobjecten. Deze code kan alleen correct worden uitgevoerd als u verwijst naar de Microsoft ActiveX Data Objects 2.1 of nieuwere versie Library. Klik hiervoor op Verwijzingen in het menu Extra in de Visual Basic Editor en zorg ervoor dat het selectievakje Microsoft ActiveX Data Objects 2.1 Library is ingeschakeld.

    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. Sla de module op als ShowUsers.

  6. Druk op Ctrl+G om het venster Direct te openen.

  7. Typ de volgende regel in het venster Direct en druk op Enter:

    ShowUserRosterMultipleUsers
    
    

    Het venster Direct retourneert een lijst met gebruikers die zijn aangemeld bij de database.