我有一個簡單的訪問表單與未綁定的文本框,用於搜索具有匹配日期的記錄,結果顯示在子窗體中。後端數據庫存儲在通過ODBC連接(SQL Server Native Client 10.0)訪問的SQL Express 2008實例中。客戶端是Access 2007,在64位Windows 7專業版上運行。訪問類型與SQL Server後臺日期字段不匹配
當用戶單擊窗體上的搜索按鈕時,將執行以下VBA代碼以更新子窗體。
Private Sub UpdateSfmQuery()
Dim query As String
If IsDate(txtDate.Value) And IsNumeric(cboStaff.Value) Then
query = "SELECT * FROM TimesheetEntries " & _
"WHERE StaffId = " & cboStaff.Value & " " & _
"AND [Date] = '" & _
Format(txtDate.Value, "YYYY/MM/DD HH:MM:SS") & "' "
Else
query = "SELECT * FROM TimesheetEntries WHERE 0 = 1;"
End If
frmTimesheetUpdateSfm.Form.RecordSource = query '<--- Fails here
End Sub
在SQL Server後端中的數據類型[日期]字段是日期時間,和上述代碼失敗上突出顯示的行以上的錯誤,Data type mismatch in criteria expression
。
我試着將txtDate的格式屬性從短日期更改爲一般日期,並且我還修改了格式爲txtDate.Value的上面一行中的日期格式。
包含在上述代碼摘錄(下面顯示的值)中的變量query
中的SQL查詢在複製並粘貼到SQL Express Management Studio時可以完美執行。
SELECT * FROM TimesheetEntries WHERE StaffId = 14 AND [Date] = '2011/11/22 00:00:00'
我在做什麼錯?
只是剛剛開始測試這個,但是完美的工作。非常感謝。我是新來的訪問,但用SQL開發了多年,我發現訪問似乎有很多像這樣的小怪癖。 – Bryan