Access 2003です。
[Start Date], [End Date]を入力するフォームで日付が入力されていなければ、
iif([Start Date] is null,<[End Date],>[Start Date])
のようにクエリ条件を設定したいのですが、
iif [Start Date] is null
を使うと、続く条件の中で<>がうまく働かないという現象が起きます。
(クエリでなにも抽出されない)
iif([Start Date] is nullの条件を入れなければ(つまり[Start Date],[End Date]はブランクにならないという前提ならば)
1. >[Start Date]
2. <[End Date]
3. Between [Start Date] And [End Date]
などどれも問題なく動きますし、
iif([Start Date] is null~の条件を入れても続く条件の中で<>を使わなければ
iif([Start Date] is null,[End Date],[Start Date])
はちゃんと動きます。
どうしてこのような現象が起こるのか、また回避する方法をご存知のかたがいらっしゃいましたら、どうぞご教示ください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
回避方法については回答出てますので、どうしてこのような現象が起こるのか、について。
クエリのデザインビューの抽出条件では、式の左辺を省略しますが、実際のSQL文に直した場合、自動的に左辺が追加されます。
例えば、あるフィールド([A]とします)の条件が下記だった場合、
>[Start Date]
実際のSQL文での条件は、左辺が追加され、下記の様になります。
WHERE [A] > [Start Date]
抽出条件が質問の式だった場合、
iif([Start Date] is null,<[End Date],>[Start Date])
実際の条件式は下記の様になります。
WHERE [A]=iif([Start Date] is null,[A]<[End Date],[A]>[Start Date])
[Start Date]がnullだった場合、
WHERE [A]=([A]<[End Date])
と評価され、期待通りの結果とはなりません。
クエリのデザインビューは便利ですが、万能ではありません。
(全てのSQL文を表現できる訳ではない)
クエリの実体はSQL文です。複雑なクエリの場合、SQL文についての知識が必要になってきます。
興味があれば、SQL文について勉強してみて下さい。
はー、なるほど。
確かにSQLでみるとおっしゃるようなクエリになってます。
デザインビューは万能ではないんですね。
とても参考になりましたし、これから自分でも調べてみようと思います。
たいへん分かりやすい解説どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/06 00:57
- 英語 イベントの本番開始前の受付開始時間は英語でなんといいますか? 1 2023/03/26 15:15
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- 英語 to date 2 2023/05/23 23:22
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
IIF関数の使い方
Visual Basic(VBA)
-
-
4
クエリで日付型のIIF関数の使用
Access(アクセス)
-
5
Accessで値がnullの場合は計算せずにnullをかえす方法
Access(アクセス)
-
6
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
7
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
8
アクセスVBAのMe!と[ ]
Access(アクセス)
-
9
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
10
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
11
Accessを使って日付を比較したい
その他(Microsoft Office)
-
12
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
13
accessで空白の時の抽出
その他(データベース)
-
14
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
15
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
16
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
17
「#エラー」の回避
Access(アクセス)
-
18
OR関数
その他(Microsoft Office)
-
19
iif関数で3つ以上条件を抽出したい場合
IT・エンジニアリング
-
20
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel表について(1)
-
アクセス・クエリの抽出条件(...
-
曜日別にリストを抽出する方法
-
ACCESS 「パラメータの入力」...
-
access クエリの抽出条件を入れ...
-
ACCESS クエリの抽出条件に他の...
-
エクセルのマクロで検索・抽出...
-
ACCESSのクエリで抽出条件「ま...
-
Accessクエリーでチェックボッ...
-
PCゲームから音声ファイルを抽...
-
SQL文で パラメータが少なすぎ...
-
日付型のフィールドに空白を入...
-
差込印刷での全角表示について...
-
Access2010での、レポートの両...
-
【エクセル】指定した日付に一...
-
海外ドラマ『プリズン・ブレイ...
-
テーブルに表示されているもの...
-
アクセスのエラー「クエリには...
-
ACCESSで追加クエリを連続実行...
-
ACCESSで出欠リストを管理する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 「パラメータの入力」...
-
ACCESSのクエリで抽出条件「ま...
-
ACCESS クエリの抽出条件に他の...
-
ACCESSの時間帯の抽出について
-
Access テーブルを分割してエク...
-
PCゲームから音声ファイルを抽...
-
アクセス・クエリの抽出条件(...
-
エクセルのマクロで検索・抽出...
-
access クエリの抽出条件を入れ...
-
ACCESS クエリの抽出条件を動的...
-
accessの日付フィールドから前...
-
アクセスでの抽出方法(日付+時...
-
Access 2003 iif [日付フィール...
-
ACCESS クエリで”1”でないもの...
-
元データから連続5日以上だった...
-
アクセス2000で、DBの0と空白以...
-
ACCESS抽出条件でデータ型が一...
-
最大値以外の抽出方法
-
クエリの進行状況を知りたい。
-
Accessクエリーでチェックボッ...
おすすめ情報