HOME > 即効テクニック > AccessVBA > データベース・データ保護 > DBに接続しているユーザーの列挙(ADO)

即効テクニック

データベース・データ保護

DBに接続しているユーザーの列挙(ADO)

(Access)
●概要●
Accessデータベースに接続しているユーザー名を取得できれば、DB更新のために特定のユーザーだけに切断要求を出したり、接続が正常に行えたかを知ることができます。以下のサンプルでは、特定のDB(c:\Northwind.mdb)に対しての接続ユーザーを取得し、イミディエイトウィンドウに出力します。アクションクエリに相当する動作を、コード中のSQL文で実行します。

●サンプル●
Sub ShowConnectUserInfo()
    Dim objCon  As New ADODB.Connection     ' コネクション
    Dim objRec  As New ADODB.Recordset      ' レコードセット
    
    ' コネクションのオープン
    objCon.Open _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb"
    
    ' スキーマの参照
    Set objRec = objCon.OpenSchema(adSchemaProviderSpecific, _
                              , _
                              "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
    
    ' DBに接続中のユーザーリストの取得
    With objRec
        While Not .EOF
            Debug.Print "[" & .Fields(0).Name & ":" & .Fields(0) & "]" & _
                        "[" & .Fields(1).Name & ":" & .Fields(1) & "]" & _
                        "[" & .Fields(2).Name & ":" & .Fields(2) & "]" & _
                        "[" & .Fields(3).Name & ":" & .Fields(3) & "]"
            .MoveNext
        Wend
    End With
    
    ' 接続を閉じる
    objRec.Close
    Set objRec = Nothing
    objCon.Close
End Sub

●補足●
このサンプルを動作させるには、事前に[ツール]-[参照設定]より「Microsoft ActiveX Data Object 2.5 Library」を組み込む必要があります。