背景無論何時使用**,都必須有一種方法將實際**(應直接解釋)與應解釋為資料的文字字串區分開。 數字通常不存在此問題,但日期也可以。
debug.print me.controlname
refers to a control on a form. whereas,
debug.print "me.controlname"
simply prints the literal text
me.controlname
每個**型別(「或」)的使用位置在某些地方(遵循詳細資訊),任何乙個都可以工作。 我希望說服您,為了清楚和一致起見,在您使用的地方使用適當的型別將是您的最大利益。 清晰,因為在沒有這種額外視覺提示的情況下,讀取同時需要兩種型別的字串的**可能會非常混亂(請參考很多以此為基礎的帖子)。
vba中的字串需要使用雙引號(「)來定界。單引號(')無法使用。
在大多數情況下,sql中的字串都可以使用。 sql的ansi標準指定它應該是單引號('),但是ms access明智地決定更加靈活並支援兩種引號型別。 這允許經驗不足的使用者進入並更輕鬆地使用它。 這也意味著他們在迷糊之前不能走得很遠:(。
我強烈建議您保留此處的標準,因為它會使sql so的那些令人困惑的字串操作更容易掌握。
嵌入式**(常規)有時,您會遇到要求指定乙個字串的要求,該字串包含用於定界字串的字元(「或」)。
推薦的處理方法是加倍使用的**。
假設您要將方括號中的文字分配給strdisp字串-[請從列表中選擇「鮑勃」。],您會說:
strdisp = "please select ""bob"" from your list."
在某些情況下,也可以改用「其他」引號字元:strdisp = "please select 'bob' from your list."
這比較容易,但是當涉及sql或其他解釋引擎時,我建議不要使用此方法。為sql構建字串但是在ms access中,我們遇到了需要使用包含嵌入式字串的字串的情況。 特別是使用sql**。
要求是在vba(sql指令)中構建乙個字串,然後該字串可能包含要由sql解釋的字串文字。 sql最終應類似於:
select * from [tablename] where ([accountname]='hieronymous')
使用正確的引號就足夠簡單了:strsql = "select * from [tablename] where ([accountname]='hieronymous')"
人們在建弦時開始感到困惑。
對此的典型要求是行繼續(sql字串可能非常長且混亂),並使用表單中的字串或日期項填充where子句。
strsql = "select *" & vbcrlf & _
"from [tablename]" & vbcrlf & _
"where ([accountname]='" & me.cboaccount & "')"
假設從列表中選擇了hieronymous,這將導致將完全相同的字串分配給strsql。
然後可以將該字串傳遞給sql直譯器
docmd.runsql strsql
然後,sql直譯器將處理嵌入的文字字串。
注意 其實
docmd.runsql僅適用於操作查詢,因此不適用於此類select sql字串,但這與該概念不太相關。
關鍵是,但是,如果您使用的是sql,則現在已經準備好使用strsql。日期 (#)這涉及更多一點,因此值得擁有自己的執行緒(
文字日期時間及其定界符(#)。
)。除錯很容易出錯,所以我總是建議在開發**時,甚至在您知道某個地方存在問題的地方,在將字串傳遞給sql引擎之前,先執行「 debug.print strsql」。 在vba視窗中使用ctrl-g來顯示並轉到顯示字串的立即窗格。
debug.print strsql
docmd.runsql strsql
注意
前面的示例僅執行動作查詢sql,不適用於所示的某些早期示例sql。
它僅旨在作為說明性示例。
from:
PHP單引號和雙引號的使用
之前剛開始學 php 時,自以為有那麼一點 c c 基礎,對一些基礎內容就只是大略看了下,後來做專案時,才發現基礎是很重要的,有時候一些小小的問題也要花你好長的時間,原因就是基礎沒打好。最近打算把 php 重新看一遍,鞏固下基礎內容。單引號的作用就是包涵一段字串,解析字串時變數和轉義序列都不會被解析...
MySQL中單引號和雙引號的使用
單獨使用時,單引號和雙引號沒有區別 需要巢狀使用時,雙引號和單引號可以互相巢狀。使用的結果是把內部的內容當做整體乙個字串變數。select from da track where act 1002001021 and data time like 2018 04 01 和 select from d...
MySQL中單引號和雙引號的使用
單獨使用時,單引號和雙引號沒有區別 需要巢狀使用時,雙引號和單引號可以互相巢狀。使用的結果是把內部的內容當做整體乙個字串變數。select from da track where act 1002001021 and data time like 2018 04 01 和select from da...