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

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Avancerat: Kräver expertkodning, interoperabilitet och fleranvändarfärdigheter.

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 for Applications för att skapa 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 hjälpa dig att förklara funktionaliteten i en viss procedur. De ändrar dock inte de här exemplen för att ge ytterligare funktioner eller skapa procedurer så att de uppfyller dina specifika krav.

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

  • Datornamn.
  • Inloggningsnamn.
  • Huruvida användaren är ansluten till databasen eller inte. (En användares ID finns kvar i låsdatabasen tills den sista användaren kopplar från eller tills kortplatsen återtas för en ny användaranslutning.)
  • Huruvida användaranslutningen avslutades under normala omständigheter.

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

Förfarande

Varning

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

Så här fastställer du vem som är inloggad i en databas:

  1. Öppna exempeldatabasen Northwind.mdb.

    Obs! Öppna Northwind2007-exempeldatabasen i Access 2007, stäng Northwind2007-exempeldatabasen och öppna northwind2007-exempeldatabasen igen.

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

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

  3. Klicka på Nytt.

    Obs! I Access 2007 klickar du Modul på menyn Infoga i Visual Basic Editor.

  4. Skriv eller klistra in följande kod:

    Obs! I exempelkoden i den här artikeln används 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å Referenser på menyn Verktyg 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 direktfönstret.

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

    ShowUserRosterMultipleUsers
    
    

    Observera att direktfönstret returnerar en lista över användare som är inloggade i databasen.