2013-11-25 158 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