2015-11-05 85 views
0

我怀疑这是一个容易的问题,我不知道答案。 我有一个Access 2010数据库,由许多不同的人使用,通常在同一时间。 我想用VBA来查明是否有其他人在使用数据库。 关于如何做到这一点的任何想法?如何判断其他人是否正在使用数据库?

回答

0

此示例子部分使用提供程序特定的模式将列出用户。你需要通过一个有效的连接,例如:

ADOUserList Currentproject.Connection 

    Public Sub ADOUserList(oConn As ADODB.Connection) 
    Dim rs As ADODB.Recordset 
     Set rs = oConn.OpenSchema(adSchemaProviderSpecific, , _ 
      "{947bb102-5d43-11d1-bdbf-00c04fb92675}") 
     Debug.Print rs.GetString 
     rs.Close 
    End Sub 

返回的字段有:

COMPUTER_NAME 
LOGIN_NAME 
CONNECTED 
SUSPECT_STATE 

请注意使用CurrentProject.Connection是让用户列表不锁定数据库的唯一途径。这种技术仍然有缺陷,通常Access会以LOGIN_NAME管理员身份打开。我一直必须将COMPUTER_NAME与登录表匹配以获取Windows用户名 - 这是Access的缺点。

+0

感谢您的快速回复。我在set rs行上得到了一个运行时错误。 “对象或提供者无法执行请求的操作”有任何想法吗? – Taffy

+0

请参阅此问题的链接:http://stackoverflow.com/questions/13477778/find-users-logged-into-access-database-using-powershell –

相关问题