• 締切済み

シングルクォーテーションとダブルクォーテーションについて

今、AccessVBAを本を見ながら勉強している初心者です。 フォームから入力されたコードに検索をしたいのですが、 Dim cnCrrDB As ADODB.Connection Dim rsKokyaku As New ADODB.Recordset ・ ・ ・ rsKokyaku.Open "Select * From 顧客マスタ Where _ 顧客コード='" & txtKokyakuCode & "'", _ cnCrrDB, adOpenStatic, adLockOptimistic とあり、[顧客マスタ]テーブルから一致する顧客コードを検索したい。っということは わかるのですが、 顧客コード='" & txtKokyakuCode & "'", のあたりの意味が、、、不明 ちなみにtxtKokyakuCodeというのは  コードを入力するための テキストボックスの名前です。 シングルクォーテーションとダブルクォーテーションを どうゆうふうに扱っているのか 教えてくださーい。 お願いします!!(わかりづらくてすみません)

みんなの回答

noname#27115
noname#27115
回答No.3

> まではセットということでしょうか? セットという意味では [ ]で閉じられた部分がセットです。 ["~='"] & [変数] & ["'"] >(ちなみに定数の場合は  >   ="10000"   といことでしょうか?) 定数である場合も、その定数が文字か数値で変わってくるのです。 ~は前にも続くの意味です。  文字だったら = '10000'  数値だったら = 10000  日付だったら = #2003/10/29# です。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 補足ですが。 本来、文字列型フィールドの検索では、検索する文字列を「""」(ダブルクォーテーション)で括らなければなりません。 実際にクエリを作成すると、そのSQLビューでは、検索文字列は「""」で括られています。 しかし、コードで実行する場合はSQL文は文字列で指定するため、全体を「""」で括る必要があります。 したがって、同じ「""」を使うことが出来ないので、「''」(シングルクォーテーション)で代用する、というのが経緯です。

noriemon
質問者

補足

ありがとうございます。ようやくなんとなくわかってきました。急にシングルクォーテーションが出てきて 「なぜ?なぜ?」となっていました。 ちなみに、 Where 顧客コード='" & txtKokyakuCode & "'", となっているというのは Where文で 比較をするのに ='" & 変数 & "' まではセットということでしょうか? (ちなみに定数の場合は     ="10000"   といことでしょうか?) すいません。よければ教えてください

noname#27115
noname#27115
回答No.1

txtKokyakuCodeが文字列の場合、作成される値が次の形にならないといけないので、  顧客コード='Oct0001' SQL文のなかではご指摘のように[']で囲ってやる必要があります。 lngKokyakuCode というのがあって、それが数値だったら  顧客コード=10008 という風に 囲む必要がないのでSQLも  顧客コード=" & txtKokyakuCode でいいのです。 仮に日付を比較する場合は、 ['] の代わりに [#] で囲みます。  登録日=#" & dateToroku & "#"  登録日=#2003/10/27# となります。

関連するQ&A