如何生成用户列表

对于本技巧,我们将向您展示一个非常方便的多用户Jet功能,该功能使您可以更有效地管理用户。 您可以在ADO中创建一个特殊的,提供程序特定的记录集,该记录集提供有关数据库中当前用户的信息。 这是通过使用连接对象的OpenSchema()方法完成的,该方法将用各种不同的数据库模式信息集填充记录集。 该OpenSchema()方法的输出将被写入具有预定义标题Computer,UserName,Connected?和Suspect?的列表框(lstUsers)。

我有意决定在此特定时间点显示此提示,因为它与先前的提示密切相关,

被动关机 。 它们都是Jet 4公开的非常有用的多用户功能,它们将极大地帮助执行某些管理任务,例如:更新,备份等。多用户数据库,将希望100%确保当前没有用户登录到您的后端数据库。 通过使用“ 被动关机” ,当不允许其他用户登录,并且“用户列表”将显示所有当前登录的用户时,您将100%保证当前登录的任何个人都不会干扰关键过程。 。

下面的代码段将演示如何在窗体的列表框中显示此用户列表。 整个代码中散布着很多注释,但是如果您需要在任何特定领域进行进一步的解释,请随时提出。


'The User List Schema information requires this magic number. For anyone
'who may be interested, this number is called a GUID or Globally Unique
'Identifier - sorry for digressing
Const conUsers = "{947bb102-5d43-11d1-bdbf-00c04fb92675}" 
Dim cnn As ADODB.Connection, fld As ADODB.Field, strUser As String
Dim rst As ADODB.Recordset, intUser As Integer, varValue As Variant 
Set cnn = CurrentProject.Connection
Set rst = cnn.OpenSchema(Schema:=adSchemaProviderSpecific, SchemaID:=conUsers) 
'Set List Box Heading
strUser = "Computer;UserName;Connected?;Suspect?" 
With rst    'fills Recordset (rst) with User List data
  Do Until .EOF
    intUser = intUser + 1
      For Each fld In .Fields
        varValue = fld.Value
          'Some of the return values are Null-Terminated Strings, if
          'so strip them off
          If InStr(varValue, vbNullChar) > 0 Then
            varValue = Left(varValue, InStr(varValue, vbNullChar) - 1)
          End If
          strUser = strUser & ";" & varValue
      Next
        .MoveNext
  Loop
End With 
Me!txtTotalNumOfUsers = intUser        'Total # of Users 
'Set up List Box Parameters
Me!lstUsers.ColumnCount = 4
Me!lstUsers.RowSourceType = "Value List"
Me!lstUsers.ColumnHeads = False
  lstUsers.RowSource = strUser       'populate the List Box 
'Routine cleanup chores
Set fld = Nothing
Set rst = Nothing
Set cnn = Nothing
输出:

Computer     UserName  Connected?  Suspect?
DEZII          Admin       True
IGUANA           Suzanne     True
LIZARD           Paul         True
FINANCE            Leonard     True

From: https://bytes.com/topic/access/insights/684989-how-generate-user-list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值