MS Access显示当前用户没有显示用户名

MS Access显示当前用户没有显示用户名

问题描述:

我目前正在使用一段代码来显示谁登录到我们的Access数据库。这是一个拆分数据库,具有后端和多个前端。我目前使用此代码:MS Access显示当前用户没有显示用户名

Private Sub btnShowUsers_Click() 
'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?" 
Debug.Print rst.GetString 

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 

End Sub 

这工作,并返回当前使用的系统用户的笔记本电脑的数字,但在“用户名”栏它只是说,“管理员”。有什么办法让它显示他们的Windows用户名,即他们的VBA.Environ(“USERNAME”)?

+0

对不起 - 这一定是从以前的草案。标题已更新。 – TCassa

不,这是不可能的。

此列显示Access用户名,与Application.CurrentUser()方法相同。

除非你设置用户级安全性,所有用户添加到工作组文件,并开始与一个命令行参数一样

/User %username% 

访问,用户名永远是“管理”。