こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESSのクエリで関数を使うときテーブルを指定しないのはなぜ?

問題集を解いています。

クエリで質問です。
[学生テーブル]から[クラス]フィールドを以下の様にIIF関数をつかってデザイングリッドに追加しています。

フィールド クラス名:IIF([クラス]=1,"A1",B1")
テーブル  学生テーブル

これで実行すると構文エラーになるのですが、問題集の答えをみると
テーブルは空白のままです。
なぜテーブルにテーブル名を指定しないのですか?

投稿日時 - 2009-09-11 10:09:01

QNo.5280424

困ってます

質問者が選んだベストアンサー

>フィールドに関数を使う場合はデザイングリッドのテーブルには指定しない
だいたい合っているのですが、補足します。フィールドを関数などで、
加工したものは既に「テーブル内の情報」ではなくなっています。
なので、テーブル名が無いのです。但し、集計関数(SUMやCOUNT)は
特別な扱いです。でも、SUM(IIF(~))のようにすると、テーブル名は
無くなります。

>デザイングリッドのテーブルには指定しない、もしくは
この文が無ければ完璧ですね。

>関数の引数に[テーブル名]![フィールド名]と書く
関数を使わない場合でも、フィールド名だけで一意に識別できない
場合はテーブル名(あるいはその別名)による修飾が必要です。
実際に生成されるSQLは必ずこうなっています。
尚、"!"はAccess特有なので、"."(ピリオド)で結合する習慣を身に
付けた方が良いでしょう。

投稿日時 - 2009-09-12 11:38:32

お礼

!そうなんですね。
素晴らしい解答ありがとうございます。

ACCESSを習得するためにはやはりSQLを勉強する必要があるでしょうか?
どう思われますか?

投稿日時 - 2009-09-12 14:56:03

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

データベースなんでSQLは必要です。DBの設計でも、必要な情報を得る
ため、SQLを想像しながらやりますからね。しかし、Access自体は
フォームやレポートと言ったものも重要なので、そっちのテクも
勉強してください。でも、全てを含めて発想力が一番大事です。

投稿日時 - 2009-09-12 23:00:03

お礼

ありがとうございます。
頑張りたいと思います。
またよろしくお願いいたします。

投稿日時 - 2009-09-13 19:33:09

ANo.2

クラス名というフィールドがテーブルに無いためです。
因みに、テーブルが1個しかないか、フィールド名"クラス"が一意で、
どのテーブルのものかを修飾する必要なく、認識できる場合はこの
書き方でOKです。しかし、テーブルが複数あり、各テーブルに同名の
フィールドがある場合、単に[クラス]ではどちらのフィールドか不明
なので、IIF([学生テーブル].[クラス]=1,"A1","B1")のように修飾が
必要になります。

投稿日時 - 2009-09-11 22:19:40

補足

う~んと・・。
フィールドに関数を使う場合は
デザイングリッドのテーブルには指定しない、もしくは同フィールド名が複数テーブルにあってどちらのテーブルから選択する場合は、フィールドの関数の引数に[テーブル名]![フィールド名]と書く。
ということでしょうか??

投稿日時 - 2009-09-11 23:45:31

ANo.1

構文エラーは引用符が閉じていないためです。
クラス名:IIF([クラス]=1,"A1",B1")
       ↓
クラス名:IIF([クラス]=1,"A1","B1")

>テーブルは空白のままです
どういう意味でしょう?
Accessクエリではテーブルは追加したり、削除したりするだけで、
フィールドのような指定のしかたはしません。

投稿日時 - 2009-09-11 15:08:01

補足

>クラス名:IIF([クラス]=1,"A1",B1")
>      ↓
>クラス名:IIF([クラス]=1,"A1","B1")
 わたくしのタイプミスです、すみませんm(_ _)m。

[学生]テーブルにフィールド[クラス名]はあります。
デザイングリッドのフィールドに、クラス名:IIF([クラス]=1,"A1",B1") と入力したら、下のテーブルには[学生]テーブルを入力しないといけないと思ったんですが、不要なのはナゼですか?
わかりやすく教えてください。

投稿日時 - 2009-09-11 21:45:21

あなたにオススメの質問