Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルSwtch関数について
記事No83121
投稿日: 2017/07/05(Wed) 13:59
投稿者薩摩芋
解決済: ON
OS:Windows7
Access Version:2013

クエリにて、下記条件で○×判定をしたいと思っております。

テーブル:[data]
フィールド:[その他調整]、[その他調整2]、[備考1]、[備考2]、[備考3]


1.[data].[その他調整]が0のとき [備考1][備考2][備考3]には"その他調整"という言葉が入らない

2.[data].[その他調整]が0以外のとき [備考1]or[備考2]に"その他調整"という言葉が入る

3.[data].[その他調整2]が0のとき [備考2][備考3]には"その他調整2"という言葉が入らない

4.[data].[その他調整2]が0以外のとき [備考2]or[備考3]に"その他調整2"という言葉が入る


[その他調整2]の条件(3,4)は[その他調整]が0以外のときでないと発生しません。

Switch関数で複数条件の設定をしたいと思い以下のような構文を作ってみましたが
#エラー となってしまいうまくいきません。


Switch([data].[その他調整]=0,[data].[備考1] Or [data].[備考2] Not Like "その他調整",[data].[その他調整A]=0,[data].[備考2] Or [data].[備考3] Not Like "その他調整A","○","×")

Switch([data].[その他調整]<>0,[data].[備考1] Or [data].[備考2] Like "その他調整",[data].[その他調整A]<>0,[data].[備考2] Or [data].[備考3] Like "その他調整A","○","×")


Trueの定義が上手くいっていないのでしょうか。
ご教授よろしくお願い申し上げます。

タイトルRe: Swtch関数について
記事No83125
投稿日: 2017/07/05(Wed) 14:55
投稿者tkwan
解決済: ON
Switch関数の用法が間違っていると思いますよ。

Switch関数
https://support.office.com/ja-jp/article/Switch-%E9%96%A2%E6%95%B0-d750c10d-0c8e-444c-9e63-f47504f9e379

Falseの場合の値も必要なのであれば、

IIf関数
https://support.office.com/ja-jp/article/IIf-%E9%96%A2%E6%95%B0-32436ecf-c629-48a3-9900-647539c764e3

タイトルRe^2: Swtch関数について
記事No83126
投稿日: 2017/07/05(Wed) 15:03
投稿者tkwan
解決済: ON
それから、Or演算子の用法も間違っています。

A Or B Not Like C

ではなく

A Not Like C Or B Not Like C

です。

タイトルRe^3: Swtch関数について
記事No83128
投稿日: 2017/07/05(Wed) 15:15
投稿者薩摩芋
解決済: ON
> それから、Or演算子の用法も間違っています。
>
> A Or B Not Like C
>
> ではなく
>
> A Not Like C Or B Not Like C
>
> です。

ありがとうございます。
上の回答のお話なのですが、IIf関数を使用すると「引数の数が一致しません」と出ます。

条件定義が複数ある場合はSwitch関数との認識でしたがFalseの場合の返し値が出せないのですね。
IIf関数を使用するのであれば、もっと条件を縮小しなければならないのでしょうか。

タイトルRe^4: Swtch関数について
記事No83129
投稿日: 2017/07/05(Wed) 15:58
投稿者tkwan
解決済: ON
> IIf関数を使用するのであれば、もっと条件を縮小しなければならないのでしょうか。

そんなことはありません。

IIf(その他調整<>0,
    IIf(備考1="その他調整" Or 備考2 = "その他調整", "○", "×"),
  IIf(備考3 = "その他調整", "×", "○"))
 
みたいに入れ子にすることもできます。

タイトルRe^5: Swtch関数について
記事No83131
投稿日: 2017/07/05(Wed) 16:33
投稿者薩摩芋
解決済: ON
> > IIf関数を使用するのであれば、もっと条件を縮小しなければならないのでしょうか。
>
> そんなことはありません。
>
> IIf(その他調整<>0,
> IIf(備考1="その他調整" Or 備考2 = "その他調整", "○", "×"),
>   IIf(備考3 = "その他調整", "×", "○"))
>  
> みたいに入れ子にすることもできます。

そうだったんですね!知らなくてお恥ずかしい限りです。
とてもわかりやすいです。これからこの手法を使っていこうと思います。
初心者に大変丁寧に教えていただきありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る