教えて! goo のコンテンツに対する取り組みについて

現在access2000を使って、
フォーム1内にコンボボックスを作って
コンボボックス内に1,2,3
と項目を入れています。
一方、クエリを使って、上記フォーム内のコンボボックスをつなげて1,2,3をそれぞれ抽出することはできるのですが、
1から3まで全てをiif関数などで
抽出したいと考えてします。
僕が考えた関数は
iif(isnull([フォーム1][コンボ1]),is not null ,[フォーム1][コンボ1])
とクエリ抽出条件内に入力すると、結果は、
1、2、3をそれぞれフォームコンボボックスで選択すれば、クエリに反映されるのですが、コンボボックス内を「空白」の状態にすると、1,2,3すべてがクエリで抽出されるのではなく、何も抽出されないという結果になってしまいます。
どうすれば、クエリで1から3すべてを抽出することができるのでしょうか?多分、iif関数内の「空白」は空白として処理されないような気がします。
よろしくお願いします。

教えて!goo グレード

A 回答 (2件)

現在の抽出条件は


=Forms![フォーム1]![コンボ1]
でしょうか

コンボが空白(未選択)時に全て表示としたければ
=Forms![フォーム1]![コンボ1] or Forms![フォーム1]![コンボ1] is null
    • good
    • 1
この回答へのお礼

できました!!。
良かった良かった。
助かりました!。
大変助かりました。本当にありがとうございます!。
こういったことはどのように学びましたか?
マニュアル本のようなものに載っているものでしょうか?

答えていただいた質問で申し訳ございませんが。

お礼日時:2006/10/19 13:58

あの書き方はSQLを理解しているものにとっては


ごくあたり前の書き方なんですが

Accessのクエリデザインビューが対応していないため
一度保存した後、クエリデザインビューで再度表示すると
異なるものに書き換えられたりするため(書き換えられても正常に働きます)
MSの技術情報とか、MSのご機嫌を損ねたくない書籍・雑誌では紹介されない方法です

MSなんかが推薦している書き方は
iif(isnull(Forms![フォーム1]![コンボ1]),true ,フィールド名=Forms![フォーム1]![コンボ1])
という式フィールドを作り
抽出条件欄に「true」と書く方法ですね

そういう意味では裏技的な書き方です
あの書き方の優れているところは
あのような抽出を複数フィールドに対して行いたい場合
(複数条件の入力されたものだけで抽出したい場合)
同じ書き方のものをそれぞれのフィールドに書いてやるだけでいい点です

ただしその場合に行われるデザインビューでの書き換えはとんでもないものになりますので
クエリ完成後はSQLビューで表示してから保存し
絶対にデザインビューで表示しないようにしなければなりません
    • good
    • 0
この回答へのお礼

SQLの理解から始めた方が良さそうですね。
勉強したいと思います。
それにしても非常に助かりました。
ありがとうございます!。

お礼日時:2006/10/20 10:17

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

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

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング