我怀疑这是一个很容易的,我不知道答案。 我有一个Access 2010数据库,由许多不同的人使用,通常是同时使用。 我希望,使用VBA,找出我是否正在使用数据库的人。 关于如何做到这一点的任何想法?
答案 0 :(得分:0)
此示例sub使用特定于提供程序的架构,将列出用户。您需要传递有效的连接,例如:
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
是获取用户列表而不锁定数据库的唯一方法。此技术仍然存在通常使用LOGIN_NAME
管理员打开Access的缺点。我一直不得不将COMPUTER_NAME与登录表匹配以获取Windows用户名 - 这是Access的缺点。