Jak określić, kto jest zalogowany do bazy danych przy użyciu programu Microsoft Jet UserRoster w programie Access

Zaawansowane: wymaga specjalistycznego kodowania, współdziałania i wielodostępnych umiejętności.

Ten artykuł dotyczy pliku bazy danych programu Microsoft Access (.mdb) lub pliku bazy danych programu Microsoft Access (.accdb).

Podsumowanie

W tym artykule pokazano, jak za pomocą usługi Microsoft Visual Basic for Applications wyświetlić listę użytkowników zalogowanych do bazy danych.

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy Pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu działania określonej procedury. Nie będą oni jednak modyfikować tych przykładów w celu dodania funkcji ani konstruować nowych procedur celem dostosowania ich do potrzeb użytkownika.

W przypadku korzystania z następującego przykładowego kodu są zwracane następujące informacje:

  • Nazwa komputera.
  • Nazwa logowania.
  • Czy użytkownik jest obecnie połączony z bazą danych. (Identyfikator użytkownika pozostaje w bazie danych blokady, dopóki ostatni użytkownik nie rozłączy się lub do momentu odzyskania miejsca dla nowego połączenia użytkownika).
  • Czy połączenie użytkownika zostało przerwane w normalnych warunkach.

Te informacje mogą również służyć do izolowania problemów z uszkodzeniem bazy danych skojarzonych z działaniami określonego użytkownika.

Procedura

Uwaga

Jeśli wykonaj kroki opisane w tym przykładzie, zmodyfikujesz przykładową bazę danych Northwind.mdb. Możesz utworzyć kopię zapasową pliku Northwind.mdb i wykonać te kroki na kopii bazy danych.

Aby określić, kto jest zalogowany do bazy danych, wykonaj następujące kroki:

  1. Otwórz przykładową bazę danych, Northwind.mdb.

    Uwaga W programie Access 2007 otwórz przykładową bazę danych Northwind2007, zamknij przykładową bazę danych Northwind2007, a następnie ponownie otwórz przykładową bazę danych Northwind2007.

  2. W menu Widok wskaż pozycję Obiekty bazy danych, a następnie kliknij pozycję Moduły.

    Uwaga W programie Access 2007 kliknij pozycję Visual Basic w grupie Makra na karcie Narzędzia bazy danych .

  3. Kliknij pozycję Nowy.

    Uwaga W programie Access 2007 kliknij pozycję Moduł w menu Wstaw w Redaktor Visual Basic.

  4. Wpisz lub wklej następujący kod:

    Uwaga Przykładowy kod w tym artykule używa obiektów danych Usługi Microsoft ActiveX. Aby ten kod działał prawidłowo, należy odwołać się do biblioteki microsoft ActiveX Data Objects 2.1 lub nowszej wersji. W tym celu kliknij pozycję Odwołania w menu Narzędzia w Redaktor Visual Basic i upewnij się, że zaznaczono pole wyboru Microsoft ActiveX Data Objects 2.1 Library (Biblioteka obiektów danych Microsoft ActiveX 2.1).

    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. Zapisz moduł jako ShowUsers.

  6. Naciśnij klawisze CTRL+G, aby otworzyć okno natychmiastowe.

  7. Wpisz następujący wiersz w oknie Natychmiastowe, a następnie naciśnij klawisz ENTER:

    ShowUserRosterMultipleUsers
    
    

    Zwróć uwagę , że okno Natychmiastowe zwraca listę użytkowników, którzy są zalogowani do bazy danych.