Microsoft Access - 从UserID显示登录用户的名称

时间:2014-08-26 07:56:24

标签: sql ms-access access-vba ms-access-2010 ms-access-2013

我有一个我正在使用的Access数据库,它有一个简单的登录系统,包含一个下拉(组合)菜单,用于选择用户名,密码字段和用户表。

在users表中,我存储了用户名,密码和所有用户的名字。我设法让我的登录表单正常工作,但我希望用户的名字显示在下一个表单的文本框中。

我设法获取了用户的ID号,并将其显示在文本框中,但我无法获得该用户的名字。

有没有人知道在文本框中显示用户名字的简单方法,请记住,我希望显示用户名字的几种表格?

由于

2 个答案:

答案 0 :(得分:1)

正如您的描述所说您使用的是ComboBox,我确信RowSource会是。

SELECT ID, userNameField
FROM EmpAuth;

ComboBox属性是Bound Column - 1,Column Count - 2,Column Widths - 0cm; 2.5cm(类似这样,但肯定是0cm)。现在您要做的就是进行以下更改:RowSource:

SELECT ID, userNameField, firstNameField
FROM EmpAuth;

ComboBox属性为Bound Column - 1,Column Count - 3,Column Widths - 0cm; 2.5cm **; 0cm **

然后,你可以简单地使用OpenArgs方法,你可以传递ComboBoxes第3列。比如,

If Me.password.Value = DLookup("password", "EmpAuth", _
        "[ID]=" & Me.username.Value) Then

    ID = Me.username.Value

    DoCmd.OpenForm "POSMenu", OpenArgs:=Me.username.Column(2) 
    'Close logon form and open splash screen
    DoCmd.Close acForm, "AuthenticationService", acSaveNo


Else
  MsgBox.............

然后最后在第二个表格的On Load事件中你可以使用。

Private Sub Form_Load()
    If Len(Me.OpenArgs & vbNullString) > 0 Then _
        Me.yourTextBoxName = Me.OpenArgs
End Sub

希望这有帮助。

答案 1 :(得分:1)

如果您打算以多种形式使用用户名信息,也许您可​​以考虑使用会话变量来访问信息。它比将对象作为参数从对象传递给对象要简洁一些。

'On the login page,upon confirming the login is correct,
'Initialise session variables
TempVars.RemoveAll 'Destroy any previous Session

'Retrieve the username from the table
UserName = Dlookup("Usernamecol","UsersTable","UserID=" & SelectedUSerID
'Load the retrieved username into a global session variable
TempVars.Add "GlbUserName", UserName
'Use this whenever you want to show the user name
LoggedInUser = TempVars![GlbUserName]
Me.txtUserName = LoggedInUser
'or
Me.lblUserName.caption = LoggedInUser