2013-11-25 108 views
1

我正在开发一个通话记录系统,并且为了跟踪目的,经理希望每个用户在登录时都能登录。通过用户名搜索数据库

我有一个模块,用下面的代码显示当前登录的用户。我希望系统在表格“TBL_Users”中搜索用户名,并在文本框中显示与该用户名相关的所有信息。如果该用户不在数据库中,我需要显示错误并且不允许用户进入系统。我知道我可能需要使用Dlookup,但我不确定如何对其进行编码。

Option Compare Database 

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ 
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long 

Function fOSUserName() As String 
' Returns the network login name 
Dim lngLen As Long, lngX As Long 
Dim strUserName As String 
    strUserName = String$(254, 0) 
    lngLen = 255 
    lngX = apiGetUserName(strUserName, lngLen) 
    If (lngX > 0) Then 
     fOSUserName = Left$(strUserName, lngLen - 1) 
    Else 
     fOSUserName = vbNullString 
    End If 
End Function 

在使用Dlookup玩了一段时间后,我需要文本框来填充表单加载。这是我用过的Dlookup。

Private Sub Form_Load() 

Windows_Logontxt = fOSUserName() 

'agentname = DLookup("Agent_Name", "TBL_Users", "Windows_Logon=" & Windows_Logontxt) 

End Sub 
+2

“我知道我可能需要使用Dlookup,但我不确定如何编码。” - *每个人*在第一次尝试某些东西时都不确定,所以不是借口。阅读[this](http://office.microsoft.com/en-ca/access-help/dlookup-function-HA001228825.aspx),然后继续尝试。然后回来编辑你的问题,说:“这是我试图使用'DLookup()'的方法:...”并告诉我们发生了什么事。 –

+0

上面编辑的问题。 – ASM2701

回答

1

看来Windows_LogonWindows_Logontxt是文本值,因此附上Windows_Logontxt引号当您创建的第三个参数DLookup的字符串。

DLookup("Agent_Name", "TBL_Users", "Windows_Logon='" & Windows_Logontxt & "'") 
+0

谢谢Hans非常感谢。 – ASM2701