2014-06-24 205 views
0

我有VBA問題,Where子句中VBA語句

我有以下行 VID & TXTapp是在表單上填寫這兩個領域和TXTApp更新完畢後,此statment應該運行。

sSQL = "SELECT VID, App_Date, App_Time" 
sSQL = sSQL & " FROM QRY_subform" 
sSQL = sSQL & " WHERE VID = " & Me.VID & "AND App_Date = #" & Me.TXTApp & "#" 
Set oRS = CurrentDb.OpenRecordset(sSQL) 

但它似乎沒有將日期字段傳遞給查詢,不知道它有什麼問題。 任何幫助都會被排除在外,因爲這讓我很生氣。

+0

您可能對SQL注入開放,這可能是一個大問題。 –

+0

Clockwork-Muse是正確的。在將它們放入SQL之前,您必須清理數據。無論如何,爲什麼不用'Debug.Print sSQL'來查看你正在運行的SQL是什麼樣的呢?來吧!用你的麪包! –

+0

@mark,我是VBA的新手,所以我一直在學習。 – aliain2003

回答

0

在第三行AND前添加一個空格,否則你可能會得到一個語法錯誤

sSQL = sSQL & " WHERE VID = " & Me.VID & " AND App_Date = #" & Me.TXTApp & "#"sSQL = sSQL & " WHERE VID = " & Me.VID & "AND App_Date = #" & Me.TXTApp & "#"

您可以通過增加線路Debug.Print sSQL你已經建立後調試自己這一點您查詢或在sSQL上使用Watch,並對您已構建的字符串進行目測。

+0

你好,謝謝你,但它仍然沒有過濾日期字段,雖然它通過它 – aliain2003

+0

當你在這個改變後執行'Debug.Print'時'sql看起來像什麼? – JustinJDavies

+0

@ JustineJDavies感謝您的幫助,它現在傳遞正確的數據,我從來沒有試過在VBA中編寫這種類型的代碼,所以沒有意識到調試系統的工作原理。 – aliain2003