2014-09-18 47 views
0

我似乎無法弄清楚我的代碼出了什麼問題。它口口聲聲說有一個語法錯誤DLookup的語法錯誤

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

編輯:

這裏是插入按鈕的全部代碼。這樣做的目標是,我希望能夠爲兩名員工添加一個條目,其中一名爲主要職位,另一名爲備用兩週。

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

它仍然在說錯誤。 Theres仍然存在語法錯誤。它是說「查詢表達式中的日期語法錯誤'[Week] =#'」 – santaaimonce 2014-09-18 18:27:06

+0

'cboWeek.Column(1)'的值是多少?在'DLookup'之前,添加這一行,並在立即窗口中檢查它的輸出:'Debug.Print [Week] =#「&cboWeek.Column(1)&」#「' – HansUp 2014-09-18 18:29:49

+0

它應該是null,因爲我是試圖處理錯誤。我試圖抓住兩個主要的東西。我不希望用戶能夠輸入空的日期,我不希望他們能夠輸入已經在表中的日期。表格中的「星期」字段已設置爲「無重複」和「必需」。 – santaaimonce 2014-09-18 18:36:52