我周圍看了一下,但無法找到該SQL語句的問題:SQL字符串在VBA在Excel 2010與日期
strSQL = "SELECT Directory.DisplayName, Department.DisplayName, Call.CallDate, Call.Extension, Call.Duration, Call.CallType, Call.SubType FROM (((Department INNER JOIN Directory ON Department.DepartmentID = Directory.DepartmentID) INNER JOIN Extension ON (Department.DepartmentID = Extension.DepartmentID) AND (Directory.ExtensionID = Extension.ExtensionID)) INNER JOIN Site ON Extension.SiteCode = Site.SiteCode) INNER JOIN Call ON Directory.DirectoryID = Call.DirectoryID WHERE (Call.CallDate)>=27/11/2012"
不管什麼,我改變它始終返回的每一個值數據庫(至少我認爲它當我嘗試這一點,因爲Excel中完全掛起)這條SQL語句在Access工作完全正常(如果有日期周圍##)。任何想法如何解決這個問題,目前試圖創建一個允許用戶在不同日期輸入的SQL語句,但必須首先克服這個隨機障礙。
編輯:在SQL數據庫中的日期字段是DD/MM/YY HH:MM:SS格式,並且此查詢,在VBA做 - Excel 2010中
同時,爲了避免混亂已刪除TOP 10從聲明中,這是爲了阻止excel檢索數據庫中的每一行。
電流參考值I已經激活是:MicrosoftX數據對象2.8庫
數據庫是一個MSSQL,使用連接字符串:
提供商= SQLOLEDB;服務器= #######;數據庫= ###### #;用戶ID = ########;密碼= ########;
Call.CallDate絕對是一個DateTime,只需雙重檢查即可確認。 該查詢在SQL數據庫視圖創建器中運行得很好,但在VBA中完全失敗。 將日期更改爲YYYYMMDD,並按照您的建議將其選爲答案。 –
更可靠的將取代「2012年11月27日」,使用'CONVERT(DATETIME,'20121127',112)'。這提供了一個明確的格式代碼來準確地表明你傳遞的是什麼。 –