Microsoft Access 掲示板

抽出したレコードが2件以上あったときの処理 / 8

15 コメント
views
4 フォロー
8
hiroton 2023/10/06 (金) 17:41:36 19f27@f966d

難しい問題ですね。使用する言語それぞれについて知識を深め、それぞれ適切に使う。というあいまいな答えになってしまいます

前提として、自分がどのような言語を使っているのか?ということをはっきりさせておく必要があります。その言語というのが「VBA」と「SQL」となりますが、Microsoft Access上において、より厳密には「ACCESS VBA」と「ACCESS SQL」となります
特に、SQLは様々なデータベースで採用されていますが、それぞれのデータベースで少しずつカスタマイズされていて微妙に仕様が変わったりします

これらを踏まえて例えば、Microsoft Accessという環境の上で何かの処理をしたい場合、

ダブルクオーテーションで記述
DMax("変位2","テーブル","ID>=1 AND ID<=9")

という記述は、ACCESSのクエリデザインやフォーム上(テキストボックスのコントロールソース)、VBAなど、どこで記述しても使える記述ですが、

シングルクオーテーションで記述
DMax('変位2','テーブル','ID>=1 AND ID<=9')

は、VBAでは使えません。VBAではシングルクオーテーションはそれ以降をコメントとするという記述になるので、この記述は構文エラーになってしまいます
このような観点からは「SQL構文を直接VBAで操作する」というようなことが無ければ「ダブル」だけ覚えておけば済むともいえます
Accessというアプリケーションとしても、文字列として補完される場合はダブルクオーテーションが使われるのがデフォルトですね

しかしながら、今回の問題のように、VBAでSQL構文を作ることを考えた場合は、シングルクォーテーションを使ったほうが見やすい記述が少ないというメリットが得られます。コードを記述するうえではミスをしにくい記述を心がけるというのが大事になってくるので、「VBAでSQL構文を操作する場合に限って」はシングルクオーテーションを使えるようになったほうがいいと思います。

通報 ...