Q: | 有一 Select SQL 如下:
Select * From House Where room = 'Child's room' (Child's 含有單引號) 想將此一 Select 指令設定給 Data1.RecordSource, 程式該怎麼寫? Data1.RecordSource = "Select * From House Where room = 'Child's
room'" |
A: | 在 SQL 裡面, 用來框住字串的符號除了單引號之外,
雙引號也是正確的,舉例來說以下兩個 SQL 指令的意義是相同的:
Select * From Stock Where ID='台積電' Select * From Stock Where ID="台積電" 但由於 VB 的字串是以雙引號框住的, 所以我們習慣以單引號來框住 SQL 的字串,例如: Data1.RecordSource = "Select * From Stock Where ID='台積電'" 但是在本問題中, 由於 Child's 含有單引號, 所以 'Child's room' 反而會造成資料庫的混淆, 因此應該寫成「"Child's room"」, 然後再放到 VB 的雙引號裡面, 直接反應的寫法是: Data1.RecordSource = "Select * From House Where room = "Child's
room"" 但由於雙引號( "" )之中有含有雙引號("), 所以正確的寫法應該修正為: Data1.RecordSource = "Select * From House
Where room = ""Child's
room""" |