dポイントプレゼントキャンペーン実施中!

今、AccessVBAを本を見ながら勉強している初心者です。

フォームから入力されたコードに検索をしたいのですが、
Dim cnCrrDB As ADODB.Connection
Dim rsKokyaku As New ADODB.Recordset



rsKokyaku.Open "Select * From 顧客マスタ Where _
顧客コード='" & txtKokyakuCode & "'", _
cnCrrDB, adOpenStatic, adLockOptimistic

とあり、[顧客マスタ]テーブルから一致する顧客コードを検索したい。っということは わかるのですが、

顧客コード='" & txtKokyakuCode & "'",

のあたりの意味が、、、不明
ちなみにtxtKokyakuCodeというのは 
コードを入力するための テキストボックスの名前です。

シングルクォーテーションとダブルクォーテーションを
どうゆうふうに扱っているのか 教えてくださーい。
お願いします!!(わかりづらくてすみません)

A 回答 (3件)

> まではセットということでしょうか?



セットという意味では [ ]で閉じられた部分がセットです。

["~='"] & [変数] & ["'"]


>(ちなみに定数の場合は 
>   ="10000"   といことでしょうか?)

定数である場合も、その定数が文字か数値で変わってくるのです。
~は前にも続くの意味です。

 文字だったら = '10000'
 数値だったら = 10000
 日付だったら = #2003/10/29#

です。
    • good
    • 0

こんにちは。

maruru01です。

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

この回答への補足

ありがとうございます。ようやくなんとなくわかってきました。急にシングルクォーテーションが出てきて
「なぜ?なぜ?」となっていました。
ちなみに、

Where 顧客コード='" & txtKokyakuCode & "'",

となっているというのは
Where文で 比較をするのに

='" & 変数 & "'

まではセットということでしょうか?
(ちなみに定数の場合は 
   ="10000"   といことでしょうか?)
すいません。よければ教えてください

補足日時:2003/10/28 15:45
    • good
    • 0

txtKokyakuCodeが文字列の場合、作成される値が次の形にならないといけないので、



 顧客コード='Oct0001'

SQL文のなかではご指摘のように[']で囲ってやる必要があります。



lngKokyakuCode というのがあって、それが数値だったら

 顧客コード=10008

という風に 囲む必要がないのでSQLも

 顧客コード=" & txtKokyakuCode

でいいのです。


仮に日付を比較する場合は、 ['] の代わりに [#] で囲みます。

 登録日=#" & dateToroku & "#"
 登録日=#2003/10/27#

となります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す