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”)?
答
不,这是不可能的。
此列显示Access用户名,与Application.CurrentUser()
方法相同。
除非你设置用户级安全性,所有用户添加到工作组文件,并开始与一个命令行参数一样
/User %username%
访问,用户名永远是“管理”。
对不起 - 这一定是从以前的草案。标题已更新。 – TCassa