如何在MS Access表单中获取当前用户登录

时间:2012-01-22 04:55:51

标签: ms-access ms-access-2007

我有初始表单登录以验证用户详细信息以访问我的MS Access数据库。

现在我有另一种形式的要求,如果我从组合框中选择相同的登录用户,那么应该在表单中启用命令按钮,以便我如何验证在我的访问数据库中使用其他表单文本框登录的初始登录用户

所以我研究了这个,但无法得到有用的场景 - 有些人可以帮助我如何实现这些细节..谢谢!

3 个答案:

答案 0 :(得分:1)

虽然API方法@Remou建议有效,但我已经采用了这种技术

Public Function GetUserName() As String
    Dim wshNet As Object
    Set wshNet = CreateObject("WScript.Network")
    GetUserName = wshNet.UserName
    Set wshNet = Nothing
End Function

我认为它比调用API更强大

答案 1 :(得分:1)

用户完成登录后,隐藏而非关闭登录表单。隐藏表单后,其他表单中的代码仍然可以从登录表单中读取值。

隐藏名为frmLogin的表单:

DoCmd.OpenForm "frmLogin",acNormal,,,,acHidden

DoCmd.OpenForm "frmLogin",acNormal,WindowMode:=acHidden

如果隐藏的frmLogin包含一个名为txtUserName的文本框,您可以像这样检查其值:

Debug.Print Forms!frmLogin!txtUserName

我基于您在Access数据库应用程序中创建自己的安全框架的假设来得出这个答案。但这一点尚不清楚。如果您正在使用需要较旧的MDB格式数据库的Access ULS(用户级安全性),Matt提到的CurrentUser()函数将为您提供用户的Access安全性名称。但是,如果这是您正在使用的方法,我不明白为什么您需要单独的登录表单。

所以你的问题不清楚。如果答案都不令人满意,请编辑您的问题以包含您正在使用的安全/登录策略的说明。

答案 2 :(得分:0)

一旦经过验证,将登录用户记录在公共变量中,然后您可以针对“CurrentUser()”命令对其进行测试,以查看它们是否与下一个表单匹配。

注意:只有每个用户拥有自己的前端副本时才使用此方法(如果每个人共享相同的前端,请不要使用此方法,尽管他们不应该这样做,但不应该这样做)

相关问题