• 締切済み

AccessのIIFの引数の条件について教えてください。

こんにちは。 初心者すぎて申し訳ございませんが、ご教授お願いいたします。 クエリを作成し、そこにiifで条件を入れたいと思います。 そのフィールドには、”承認済”・”未承認”・”申請前”と、3種類があります。 また、フォームのオプションボタンは”1”・”2”があります。 (1)オプションボタンが”1”ならば”承認済” (2)でなければ、”未承認”と”申請前”となっている結果を表示させたく思います。 クエリの抽出条件に以下の条件を書いてみたところ、 「式が正しく入力されていないか、複雑すぎるために評価できませんでした。~」 となってしまいます。 IIf([Forms]![フォーム1]![フレーム8]=1,"承認済","未承認" Or "申請前") 条件を1つ削り以下の式は、正しく表示されるのですが・・・。 IIf([Forms]![フォーム1]![フレーム8]=1,"承認済","未承認") いろいろやってみたのですがわかりませんでした。 お手数ですが、以上よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Switch関数と「言うのもあります。 http://support.microsoft.com/kb/882955/ja Googleで「access switch関数」で照会。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

>(2)でなければ、”未承認”と”申請前”となっている結果を表示させたく思います。 この「結果」がどっちになっているか、どのように判断しますか? その判断基準が無いんで、上手く行かないんです。 例えば変数"I_kekka"に、1:未承認、0:申請前、と入っているなら、 =IIf([Forms]![フォーム1]![フレーム8]=1,"承認済",IIF(I_kekka=1,"未承認","申請前")) こんな感じではないかと思います。

yuuuuuki99
質問者

補足

丁寧なアドバイスありがとうございます。 >この「結果」がどっちになっているか、どのように判断しますか? についてなのですが、”未承認”と”申請前”の両方を結果として表示させたいです。 ”承認前”以外という感じです。 クエリの条件で書くだけでは根本的に無理なのでしょうか? 理解度が低くてすみません。

関連するQ&A

  • クエリの抽出条件でiif関数

    こんにちわ。 いまaccess2000でクエリを作成し, その抽出条件において,iif関数を使って, フォームのあるフィールドに値があるときはその値, ないときはワイルドカードで検索しようと思い, 下記のコーディングを入れました。 iif([Forms]![F_フォーム1].[テキスト1] Is Null, "*", [Forms]![F_フォーム1].[テキスト1]) ところがワイルドカードの"*"がうまく効いてくれないようで 正しく検索されません。 どうすれば正しく検索できるでしょうか? 教えてください。お願いします。

  • access2000でのiifを使う条件で

    削除クエリを実施する際にフォームでテキスト16からテキスト18って感じで日付を入力して削除しています。テキスト16に何も入力しない時は2000/01/01からテキスト18までとなるようにしたくてクエリの抽出条件に IIf([Forms]![F_A]![テキスト16]="", Between #2000/01/01# And [Forms]![F_A]![テキスト18],Between [Forms]![F_A]![テキスト16] And [Forms]![F_A]![テキスト18]) って入れたのですが上手く動きません。 何か根本的に間違ってたりした。よろしくお願いします。

  • アクセスクエリでの空白の値の表示

    フォームで条件フィールドから2つ同時の検索をかけたく クエリに以下の式を記載致しました。 検索はかかるのですが空白のデータがでてきません。 空白のデーターも表示させたいためにはどうしたらいいでしょうか? 式1: IIf(IsNull([Forms]![フォーム]![条件1]) And IsNull([Forms]![フォーム]![条件2]),True,[条件]=[Forms]![フォーム]![条件1]Or [条件]=[Forms]![フォーム]![条件2] 抽出条件  True

  • access クエリでIIF文で抽出条件なし

    フォームにコンボボックスを用意し、(コンボボックスは、「両方」、「条件A」、「条件B」の3項目です) クエリで抽出条件にIIF文を使い、 IIf([Forms]![フォーム]![コンボボックス]="両方",'',[Forms]![フォーム]![コンボボックス]) ”両方”を選択した場合は、「抽出条件なし」としたいのですが、できませんでした。 別案として、 IIf([Forms]![フォーム]![コンボボックス]="両方","条件A" or "条件B",[Forms]![フォーム]![コンボボックス]) なども試しましたができませんでした。 どうか解決方法をご教授願います。

  • オプションボタンの条件分岐で全件表示ができない

    「fo物件登録一覧検索指定」フォーム内に、非対象/対象を区分するオプションフレームを設置、フレーム内に”対象”、”非対象”、”両方”のオプションボタンを設けています。「Qu物件登録一覧検索」クリエー内の非対象/対象フィールドには、以下の抽出条件を記入しました。結果、オプションボタンで”非対象”、”対象”を選択した時には正常に絞込みが行え、”両方”を選択した場合のみ、なにもリストが表示されない状況で、2日間ぐらい試行錯誤を繰り返し、IIF関数等いろいろ試していますが未だ堂々巡りです。 クエリの抽出条件は以下通りです。 フィールド名:対象非対象 抽出条件(1):Switch([Forms]![fo物件検索指定]![オプションフレーム]=1,"対象",[Forms]![fo物件検索指定]![オプションフレーム]=2,"非対象") OR抽出条件(2):Nz([Forms]![fo物件検索指定]![オプションフレーム]=3,True) ”対象”のオプション値=1 ”非対象”のオプション値=2 ”両方”のオプション値=3 どうぞACCESS難民にどうかご教示をお願いします。

  • ACCESSのクエリー抽出条件にIIFを使用して

    コンボボックスの値を抽出条件にしたクエリーを作成しています。 コンボボックスにて"ALL"を選択したときに、全レコードを表示したく、 以下の式を入れたのですが全表示がされません。 IIf([Forms]![テーブル名]![コンボ値]="ALL",Like "*",[Forms]![テーブル名]![コンボ値]) Like "*" の部分がいけないのでしょうか? (偽の場合は選択した値のレコードが抽出されます) どなたか教えてください、よろしくお願いいたします。

  • ACCESSでクエリーを使った検索

    VBAを使えば簡単にできるのですが、事情があり、クエリーのみで行わなければいけません。 フォームに入力された情報を元に検索できるクエリを作成しました。 通常でしたらクエリのフィールド名の下の抽出条件に Forms![F_検索]![検索条件1] とすればいいのですが、これが複数の条件を設定した場合はすべての条件を入力しないと、検索結果が出ないことから 以下のように変更しました。 フィールド名の抽出条件には何も書かず、別に式として IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=[Forms!]![F_検索]![検索条件1])) と入力しそこの抽出条件に「True」と入力しました。 これで何も入力されてない場合は全件が表示されるようになりました。 通常の検索はこれでいいのですが疑問点が2点あります。 1.期間を抽出する場合はどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Between [Forms!]![F_検索]![検索条件1] and [Forms!]![F_検索]![検索条件2])) とかしてみましたがダメでした。 2.あいまい検索をするにはどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Like [Forms!]![F_検索]![検索条件1])) なんてしてみましたがだめでした。 ご回答よろしくお願いします。

  • ACCESSのあいまいな条件のクエリ 

    フォームで金額を入力します。 この入力された金額を使ってクエリの条件を作りたいと考えています。 <条件> ・金額が未入力の場合は、全て抽出。 ・金額が入力されている場合は、その金額以上を抽出   (例:1000と入力された場合は、>=1000) 下記のような条件式を入れたら、金額を入力しているにも関わらず、 何も入力されてきませんでした。 IIf(IsNull([Forms]![フォームA]![txt金額]),Like "*",>=Val([Forms]![フォームA]![txt金額]))

  • ACCESS クエリの抽出条件で全てを抽出したい

    初歩的な質問で申し訳ありません。 売上入力フォームのオプショングループに配置した3つのトグルスイッチによって、クエリからデータを抽出したいのですが、 オプション値1 全て  オプション値2 現場 オプション値3 得意先 IIf([Forms]![F_売上入力]![fr_2]=2,"現場",IIf([Forms]![F_売上入力]![fr_2]=3,"得意先","*")) と抽出条件に入力しましたが、全てのみ上手くいきません。単純なミスとは思うのですが、どうしても出来なくて。。。他に全てを表示させる方法等ありましたら、是非、お知恵を貸して下さい。

  • アクセスIIF関数

    はじめまして。ACCESSのif関数について教えてもらいたいことがあります。 dataAの数値に対して、目標数80をこえればその数値分に10を乗算し、未達であれば、0を返すという条件式を行いたいのですが、うまくいきません。以下、自分がやっていたデータを記載します。 テーブル例 dataA 70 80 60 90 クエリ条件式 式1:IIF([dataA]>80,"([dataA]-80)*10","0") 未達については0が返るのですが、超えた場合(真の時)([dataA]-80)*10の式が表示されています。うまく計算させるには、どうしたらよいのでしょうか。ご教授よろしくお願いします。

専門家に質問してみよう