Access'te Microsoft Jet UserRoster kullanarak veritabanında kimlerin oturum açtığını belirleme

Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı beceriler gerektirir.

Bu makale, Microsoft Access veritabanı (.mdb) dosyası veya Microsoft Access veritabanı (.accdb) dosyası için geçerlidir.

Özet

Bu makalede, microsoft Visual Basic for Applications kullanarak veritabanında oturum açmış kullanıcıların listesinin nasıl çıkışını oluşturabileceğiniz gösterilmektedir.

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir. Ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmeyeceklerdir.

Aşağıdaki örnek kodu kullandığınızda, aşağıdaki bilgiler döndürülür:

  • Bilgisayar adı.
  • Oturum açma adı.
  • Kullanıcının şu anda veritabanına bağlı olup olmadığı. (Kullanıcının kimliği, son kullanıcı bağlantısı kesilene kadar veya yuva yeni bir kullanıcı bağlantısı için geri alınana kadar kilit veritabanında kalır.)
  • Kullanıcı bağlantısının normal koşullarda sonlandırılıp sonlandırılmadığı.

Bu bilgiler, belirli bir kullanıcının etkinlikleriyle ilişkili veritabanı bozulmasıyla ilgili sorunları yalıtmak için de kullanılabilir.

Yordam

Dikkat

Bu örnekteki adımları izlerseniz örnek veritabanı Northwind.mdb değiştirirsiniz. Northwind.mdb dosyasını yedeklemek ve veritabanının bir kopyasında bu adımları izlemek isteyebilirsiniz.

Veritabanında kimin oturum açtığını belirlemek için şu adımları izleyin:

  1. Örnek veritabanını açın Northwind.mdb.

    Not Access 2007'de Northwind2007 örnek veritabanını açın, Northwind2007 örnek veritabanını kapatın ve northwind2007 örnek veritabanını yeniden açın.

  2. Görünüm menüsünde Veritabanı Nesneleri'nin üzerine gelin ve Modüller'e tıklayın.

    Not Access 2007'de, Veritabanı Araçları sekmesinin Makro grubunda Visual Basic'e tıklayın.

  3. Yeni'ye tıklayın.

    Not Access 2007'de, Visual Basic Düzenleyici Ekle menüsünde Modül'e tıklayın.

  4. Aşağıdaki kodu yazın veya yapıştırın:

    Not Bu makaledeki örnek kodDa Microsoft ActiveX Veri Nesneleri kullanılmaktadır. Bu kodun düzgün çalışması için Microsoft ActiveX Veri Nesneleri 2.1 veya üzeri sürüm Kitaplığı'na başvurmanız gerekir. Bunu yapmak için, Visual Basic Düzenleyici Araçlar menüsünde Başvurular'a tıklayın ve Microsoft ActiveX Veri Nesneleri 2.1 Kitaplığı onay kutusunun seçili olduğundan emin olun.

    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. Modülü ShowUsers olarak kaydedin.

  6. Anında Pencere'yi açmak için CTRL+G tuşlarına basın.

  7. Anlık penceresine aşağıdaki satırı yazın ve ENTER tuşuna basın:

    ShowUserRosterMultipleUsers
    
    

    Anlık penceresinin veritabanında oturum açmış olan kullanıcıların listesini döndürdüğünü unutmayın.