2014-03-19 2 views
2

나는 폼로드에서 실행되는 일부 코드를 가지고 :변수를 사용할 때 DLookup이 작동하지 않습니까?

Private Sub Form_Load() 
'Declare the username variable 
Dim loginID As String 
'Get the username from the environment array variable 
loginID = Environ("USERNAME") 
'Pop up a message box stating the obvious and checking the variable is set 
MsgBox ("Hello " & loginID") 
'Lookup the permissions of the user based on the windows logon 
MsgBox DLookup("permissions", "Users", "userName = " & loginID) 

이 코드는 "테스트"메시지 상자 작업을 실행하고 내 창 로그인 ID,하지만 코드가 계속되면 내가 위로 올라 오면 나는이에 대한 DLookup 문을 변경하는 경우 'MORINDAV'

:

2471 쿼리 매개 변수로 입력 한 식에이 오류가 발생 다음을 DLookup에 도착, 나는 VBA 오류가

Null을 잘못 사용하면 '94'오류가 발생합니다.

나는 위와 같은 구문을 유지하지만, 수동으로이 같은를 테스트하고있어 사용자가 값을 입력하는 경우

MsgBox DLookup("permissions", "Users", "userName = 'MORINDAV'") 

명령문 작품 및 VBA 나에게 해당 사용자의 권한 수준 메시지 상자를 보여줍니다.

나는 그것을 구문 문제 확신하지만 변수를 사용하는 동안 작동하도록을 DLookup을 얻을 수없는 것 :

+0

Environ ("USERNAME")은 (는) Windows 명령 프롬프트를 열고 USERNAME을 위조 값으로 설정 한 다음 해당 세션 내에서 Access를 시작하면 쉽게 실패 할 수 있습니다. – HansUp

답변

4

userNameloginID 텍스트 유형은 loginid, 그래서 따옴표 loginID의 값을 묶습니다.

DLookup("permissions", "Users", "userName = '" & loginID & "'") 
+0

이것은 완전히 효과가 있습니다. 미래를 밝히기 위해서, 변수가 숫자라면, 이전에했던 방식대로 작동합니까? –

+0

맞습니다. 번호를 인용하지 않으실 겁니다. 날짜/시간이면'# '과 같은 구분 기호를 추가합니다. # 2014-03-19 #' – HansUp

관련 문제