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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
IIF関数の使い方
Visual Basic(VBA)
-
-
4
クエリで日付型のIIF関数の使用
Access(アクセス)
-
5
Accessで値がnullの場合は計算せずにnullをかえす方法
Access(アクセス)
-
6
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
7
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
8
OR関数
その他(Microsoft Office)
-
9
Accessを使って日付を比較したい
その他(Microsoft Office)
-
10
iif関数で3つ以上条件を抽出したい場合
IT・エンジニアリング
-
11
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
12
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
13
アクセスVBAのMe!と[ ]
Access(アクセス)
-
14
「#エラー」の回避
Access(アクセス)
-
15
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
16
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
17
access マクロでのフィルタの解除の方法
Access(アクセス)
-
18
YES/NO型の値
Excel(エクセル)
-
19
サブフォームの新規レコードに移動したい アクセス
Access(アクセス)
-
20
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス・クエリの抽出条件(...
-
PCゲームから音声ファイルを抽...
-
ACCESS 「パラメータの入力」...
-
ACCESS クエリで”1”でないもの...
-
ACCESS クエリの抽出条件に他の...
-
Access VBA 日付で抽出でき...
-
VBAでアクセスのクリエの抽出条...
-
Access 抽出した重複データを一...
-
クエリの進行状況を知りたい。
-
アクセス2000で、DBの0と空白以...
-
Access:クエリの複数『or条件...
-
access クエリの抽出条件を入れ...
-
accessで複数フィルタをかけた...
-
エクセルのマクロで検索・抽出...
-
Accessクエリーでチェックボッ...
-
音源の楽器パート毎に分離する...
-
エクセル2010の統計作業(フィ...
-
ACCESS Dateadd関数による日付...
-
選択クエリでの日付範囲指定
-
アクセス2010 最新データを抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリの抽出条件に他の...
-
ACCESS 「パラメータの入力」...
-
ACCESSのクエリで抽出条件「ま...
-
ACCESSの時間帯の抽出について
-
Access テーブルを分割してエク...
-
PCゲームから音声ファイルを抽...
-
アクセス・クエリの抽出条件(...
-
accessの日付フィールドから前...
-
エクセルのマクロで検索・抽出...
-
元データから連続5日以上だった...
-
アクセスでの抽出方法(日付+時...
-
access クエリの抽出条件を入れ...
-
ACCESS クエリで”1”でないもの...
-
ACCESSのクエリで集計
-
ACCESS クエリの抽出条件を動的...
-
クエリの進行状況を知りたい。
-
最大値以外の抽出方法
-
Access 2003 iif [日付フィール...
-
Access:クエリの複数『or条件...
-
アクセスのクエリで空白データ...
おすすめ情報