2010年05月19日

SQLのWHERE句

つい先日SQLについて書いたところ、早速セミナーでもSQLの基本に関するご質問を頂きました。

Accessを学習し始めて最初に覚えておいた方がよいSQLというとWHERE句ではないでしょうか。
クエリのデザインビューで言うと「抽出条件」の欄に入力した部分が、SQL文のWHERE句(WHEREで始まる部分)に変換されます。

ごく簡単な例を書いてみます。

(抽出条件1)
 数値型の「顧客ID」フィールドの値が 100 と等しいデータ
(WHERE句の例1)
 WHERE 顧客ID = 100

(抽出条件2)
 テキスト型の「顧客名」フィールドの値が文字列 花子 と等しいデータ
(WHERE句の例2)
 WHERE 顧客名 = "花子"

SQL文の中で文字列データは半角の " " で囲みます。
VBAのプログラムの中で " " を使って囲む場合は " " を ' ' に修正します。

(VBAで利用する場合の例)
 "WHERE 顧客名 = '花子'"

クエリのデザインビューで抽出条件を入力し、SQLビューで確認すると、WHEREに続けてどのような記載になるかを確認することができます。
SQLビューでは以下のように ( ) や テーブル名も追加されます。

(AccessのSQLビューの例)
 WHERE (((顧客マスター.顧客名)="花子"));
(意味)
 「顧客マスター」テーブルの中にある「顧客名」フィールドの値が、文字列 花子 と等しいデータ

意外に多いミスは半角と全角の入力ミスです。
「WHERE」や文字と文字の間に入る空白などは半角になります。
WHEREを小文字の where と書いても動きますが、
全角で WHERE と書くと動きません。

Accessの表示が初期設定で「MS Pゴシック」になっているので、全角と半角の違いが画面上で見分けにくく、スペースキーで半角に変換して入力していると、ついつい間違えてしまうことが多いようです。

「どう見ても合っていると思うのになぜかエラーになってしまう」
というような場合は、もう一度入力し直してみてください。

Accessを使っていると、グループ集計、クロス集計、マクロなどで「WHERE条件」という言い方で抽出条件を指定させる機能があります。
SQL文のWHERE句について理解しておくと、AccessのWHERE条件も入力がしやすくなることと思います。




posted by Three bit com at 10:00| Access(アクセス)