Så här avgör du vem som är inloggad på en databas med hjälp av Microsoft Jet UserRoster i Access

Avancerat: Kräver expertkodning, samverkan och färdigheter för flera användare.

Den här artikeln gäller en Microsoft Access-databasfil (.mdb) eller en Microsoft Access-databasfil (.accdb).

Sammanfattning

Den här artikeln visar hur du använder Microsoft Visual Basic för program för att mata ut en lista över användare som är inloggade på en databas.

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan förklara hur en viss procedur fungerar, men de ändrar inte exemplen för att utöka funktionerna och konstruera procedurer som motsvarar dina behov.

När du använder följande exempelkod returneras följande information:

  • Datornamn.
  • Inloggningsnamn.
  • Om användaren för närvarande är ansluten till databasen eller inte. (En användares ID finns kvar i låsdatabasen tills den senaste användaren kopplar från eller tills platsen har återkallats för en ny användaranslutning.)
  • Om användaranslutningen avbröts under normala omständigheter.

Den här informationen kan också användas för att isolera problem med skadade databaser som är associerade med en viss användares aktiviteter.

Förfarande

Försiktighet

Om du följer stegen i det här exemplet ändrar du exempeldatabasen Northwind.mdb. Du kanske vill säkerhetskopiera Northwind.mdb-filen och följa de här stegen på en kopia av databasen.

Följ dessa steg för att avgöra vem som är inloggad på en databas:

  1. Öppna exempeldatabasen Northwind.mdb.

    Observera Öppna exempeldatabasen Northwind2007 i Access 2007, stäng exempeldatabasen Northwind2007 och öppna sedan exempeldatabasen Northwind2007 igen.

  2. På menyn Visa pekar du på Databasobjekt och klickar sedan på Moduler.

    Observera I Access 2007 klickar du på Visual Basic i gruppen Makro på fliken Databasverktyg .

  3. Klicka på Ny.

    Observera I Access 2007 klickar du på ModulInfoga-menyn i Visual Basic-Editor.

  4. Skriv eller klistra in följande kod:

    Observera Exempelkoden i den här artikeln använder Microsoft ActiveX-dataobjekt. För att den här koden ska köras korrekt måste du referera till Microsoft ActiveX Data Objects 2.1 eller senare version Library. Det gör du genom att klicka på Referenserpå verktygsmenyn i Visual Basic-Editor och kontrollera att kryssrutan Microsoft ActiveX-dataobjekt 2.1-bibliotek är markerad.

    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. Spara modulen som ShowUsers.

  6. Tryck på CTRL +G för att öppna det omedelbara fönstret.

  7. Skriv följande rad i fönstret Omedelbart och tryck sedan på RETUR:

    ShowUserRosterMultipleUsers
    
    

    Observera att fönstret Omedelbar returnerar en lista över användare som är inloggade på databasen.