Microsoft Access 掲示板

クエリの間違いを教えてください

4 コメント
views
4 フォロー

以下2つのクエリがうまく動きません。
どこが間違っているか分からず、ご教示ください。

IIf([テーブルA]![フィールド1]<>[テーブルB]![フィールド1],"9",IIf([テーブルA]![フィールド2]=DateAdd("d",1,[クエリA]),"3","9"))

クエリA
DateSerial(Val(Left([テーブルB]![フィールド3],4)),Val(Mid([テーブルB]![フィールド3],5,2)),Val(Right([テーブルB]![フィールド3],2)))

【前提情報】
フィールド3には20200520のような日付(短いテキスト形式)が入っています。
これをシリアル値に変換して、DateAddを使用したいです。

【最終的にやりたいこと】
1.テーブルAのフィールド1=テーブルBのフィールド1なら○を表示
2.テーブルAのフィールド1≠テーブルBのフィールド1
  かつ、テーブルAのフィールド2=テーブルBのフィールド3+1日(1日後)であれば○を表示
3.テーブルAのフィールド1≠テーブルBのフィールド1
  かつ、テーブルAのフィールド2≠テーブルBのフィールド3+1日(1日後)であれば×を表示

ゆん
作成: 2020/05/20 (水) 17:11:24
通報 ...
1

以下2つのクエリがうまく動きません。

その2つのクエリのSQLを質問に追記してもらえますか。

2

すみませんクエリの認識が間違っていたかもしれませんが、iif〜とdateadd〜がうまく動きません。

3

その式がどこに記述してあるか、クエリ全体でどのような構成になっているかで回答がことなります。
現状のクエリをデザインビューで開いてから、SQLビューにするとSQL文が表示されますので、それをコピーして貼り付けてください。SQLを見れば、クエリの全体の構成が分かりますので、回答しやすいです。

ちなみに「クエリA」というのはクエリではなく、フィールド名なのかな?

4
hiroton 2020/05/21 (木) 10:01:23 09be6@f966d

「うまく動きません。」とだけ言われても今どのような結果が出ていて、本当はどのような結果が欲しいのかを言っていただかないと何が間違っていてどこを正せばいいのか誰にもわかりませんよ?

「【最終的にやりたいこと】」を見る限りは条件式の書き方の問題ではないかと思いますが

IIf(
|  [テーブルA]![フィールド1]=[テーブルB]![フィールド1]  --1.の条件判定
|  ,"9"                --1.のとき○
|  ,IIf(                --1.でないときはさらに条件分岐
|  |  [テーブルA]![フィールド2]<>DateAdd("d",1,[クエリA])  --2.の条件判定
|  |  ,"9"             --(1.でなく)2.のとき○
|  |  ,"3"             --(1.でなく)2.でもない(3の)とき×
|  )
)