Tietokannan kirjautumisen selvittäminen Microsoft Jet UserRosterilla Accessissa

Edistynyt: Edellyttää asiantuntijakoodausta, yhteentoimivuutta ja monikäyttöosaamista.

Tämä artikkeli koskee Microsoft Access -tietokantatiedostoa (.mdb) tai Microsoft Access -tietokantatiedostoa (.accdb).

Yhteenveto

Tässä artikkelissa kerrotaan, miten voit Microsoft Visual Basic for Applications avulla tulostaa tietokantaan kirjautuneiden käyttäjien luettelon.

Microsoft esittää ohjelmointiesimerkkejä vain asian havainnollistamiseksi, ilman suoraa tai epäsuoraa vastuuta niiden toimivuudesta. Tämä sisältää muunmuassa epäsuorat vastuut soveltuvuudesta kaupankäyntiin tai soveltuvuuteen yksilöityyn käyttöön. Tässä artikkelissa oletetaan, että olet perehtynyt käytettyyn ohjelmointikieleen, sekä proseduurien luonti- ja virheenkorjaustyökaluihin. Microsoftin tukiteknikot voivat auttaa selittämään tietyn toimenpiteen toiminnallisuuden. Microsoftin tukihenkilöt voivat auttaa selvittämään tietyn toimenpiteen toiminnallisuutta, mutta he eivät muokkaa näitä esimerkkejä parantamaan yksittäisen tarpeen toiminnallisuutta eivätkä luo siihen toimenpiteitä.

Kun käytät seuraavaa mallikoodia, palautetaan seuraavat tiedot:

  • Tietokoneen nimi.
  • Kirjautumisnimi.
  • Onko käyttäjällä yhteys tietokantaan vai ei. (Käyttäjän tunnus säilyy lukitustietokannassa, kunnes edellinen käyttäjä katkaisee yhteyden tai kunnes paikka on otettu käyttöön uutta käyttäjäyhteyttä varten.)
  • Tieto siitä, onko käyttäjäyhteys katotettu normaaleissa olosuhteissa.

Näiden tietojen avulla voidaan myös eristää tietokannan vioittumiseen liittyviä ongelmia, jotka liittyvät tietyn käyttäjän toimiin.

Menettely

Varoitus

Jos noudatat tämän esimerkin ohjeita, muokkaat mallitietokannan Northwind.mdb. Haluat ehkä varmuuskopioida Northwind.mdb -tiedoston ja tehdä nämä toimet tietokannan kopiossa.

Voit selvittää, kuka on kirjautunut tietokantaan, toimimalla seuraavasti:

  1. Avaa mallitietokanta Northwind.mdb.

    Huomautus Avaa Access 2007:ssä Northwind2007-mallitietokanta, sulje Northwind2007-mallitietokanta ja avaa sitten Northwind2007-mallitietokanta uudelleen.

  2. Valitse Näytä-valikosta Tietokantaobjektit ja valitse sitten Moduulit.

    Huomautus Valitse Access 2007:ssä VisualBasicTietokantatyökalut-välilehdenMakro-ryhmästä.

  3. Valitse Uusi.

    Huomautus Valitse Access 2007:ssä Moduuli Visual Basic -Kirjoitusavustaja Lisää-valikosta.

  4. Kirjoita tai liitä seuraava koodi:

    Huomautus Tämän artikkelin mallikoodi käyttää Microsoft ActiveX Data Objects -objekteja. Jotta tämä koodi toimisi oikein, sinun on viitattava Microsoft ActiveX Data Objects 2.1:een tai uudempaan versiokirjastoon. Voit tehdä tämän valitsemalla Visual Basic -Kirjoitusavustaja Työkalut-valikosta Viittaukset ja varmistamalla, että Microsoft ActiveX Data Objects 2.1 -kirjasto -valintaruutu on valittuna.

    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. Tallenna moduuli ShowUsers-muodossa.

  6. Avaa Välitön ikkuna painamalla CTRL+G.

  7. Kirjoita seuraava rivi Välitön-ikkunaan ja paina ENTER-näppäintä:

    ShowUserRosterMultipleUsers
    
    

    Huomaa , että Välitön-ikkuna palauttaa luettelon tietokannasta kirjautuneista käyttäjistä.