2014-09-18 5 views
0

여기 내 코드에 무슨 문제가 있는지 알 수 없습니다. 그것은 구문 오류를가 있다는 말을 계속Syntax Error with DLookup

Dim NullorNot As Date 
NullorNot = Nz(DLookup("[Week]", "[Weeks on Call]", "[Week] = #" & cboWeek.Column(1) & "#"), [#01/01/2000#]) 

편집 : 여기

가 삽입 버튼의 전체 코드입니다. 이 목표는 두 명의 직원이 전화를 걸 수 있도록 항목을 추가 할 수있게하려는 것입니다. 하나는 기본이고 다른 하나는 특정 2 주 동안의 백업입니다.

Private Sub cmdInsert_Click() 
Response = MsgBox("Are you sure you would like to add this form?", [vbYesNoCancel], "Confirm Insert") 
If Response = vbYes Then 
Dim TempCount As Date 
Dim TempCount2 As Date 
Debug.Print "[Week] = #" & cboWeek.Column(1) & "#" 
TempCount = Nz(DLookup("[Week]", "[Weeks on Call]", "[Week] = #" & cboWeek.Column(1) & "#"), #1/1/2000#) 
TempCount2 = Nz(DLookup("[Week]", "[Weeks on Call]", "[Week] = #" & cboWeek2.Column(1) & "#"), #1/1/2000#) 
If ((TempCount = #1/1/2000#) And (TempCount2 = #1/1/2000#)) Then 
GoTo Method_Run 
Else 
Dim Msg2 As String 
Msg2 = "Employees have already been assigned to be On Call for that date." 
Dim title2 As String 
title2 = "Duplicate Error" 
MsgBox Msg2, [vbOKOnly], title2 

End If 
Method_Run: 
Dim SQL As String 
Dim SQL2 As String 
On Error GoTo Err_Insert 
DoCmd.SetWarnings False 
SQL = "INSERT INTO [Weeks on Call]([Primary Employee], [Backup Employee], [Week]) VALUES ('" + cboName.Column(1) + "','" + cboName2.Column(1) + "','" + cboWeek.Column(1) + "')" 
SQL2 = "INSERT INTO [Weeks on Call]([Primary Employee], [Backup Employee], [Week]) VALUES ('" + cboName2.Column(1) + "','" + cboName.Column(1) + "','" + cboWeek2.Column(1) + "')" 

DoCmd.RunSQL SQL 
DoCmd.RunSQL SQL2 



Exit_Err: 
    Exit Sub 

Err_Insert: 
If Err.Number = 94 Then GoTo Err_Msg 
Err_Msg: 
Dim Msg As String 
Msg = "One or more of the fields is null, please make sure each field is filled" 
Dim title As String 
title = "Null Error" 
MsgBox Msg, [vbOKOnly], title 
End If 

If Response = vbNo Then 
Response = MsgBox("Entry was not saved", [vbOKOnly], "Not Saved") 
End If 
If Response = vbCancel Then 
Response = MsgBox("Entry was not saved", [vbOKOnly], "Not Saved") 
End If 

End Sub 

답변

2

대괄호로 날짜 값을 묶으면 Access에서 문자/숫자 값 대신 개체 식별자로 해석합니다.

대괄호를 제거하십시오.

NullorNot = Nz(DLookup("[Week]", "[Weeks on Call]", "[Week] = #" & cboWeek.Column(1) & "#"), #01/01/2000#) 
+0

여전히 오류가 발생하고 있습니다. 여전히 구문 오류가 있습니다. 그것은 "쿼리 식 '[Week] = #'의 날짜 구문 오류입니다." – santaaimonce

+0

'cboWeek.Column (1)'의 값은 무엇입니까? 'Debug.Print "[Week] = #"& cboWeek.Column (1) & "#"' – HansUp

+0

왜냐하면 나는'DLookup'에 다음 라인을 추가하고 출력을 체크합니다. 오류를 처리하려고합니다. 내가 알아 내려는 두 가지 주요한 것들이 있습니다. 사용자가 빈 날짜를 입력 할 수 없도록하고 싶습니다. 사용자가 이미 테이블에있는 날짜에 입력 할 수 없도록하고 싶습니다. 테이블의 "week"필드는 이미 No Duplicates and Required로 설정되어 있습니다. – santaaimonce