- ベストアンサー
アクセスクエリで偽の場合そのままの数字を入れたい
教えてください。 IIf関数を使って正しい場合は0、偽の場合はフォームに入れた数字をそのまま反映させたい場合 IIf(([tbl_tbl]![ID]=1 ),0,([Forms]![frm_frm]![コンボ1])) 正しい場合は0が出てきますが偽の場合そのままの数字を反映させることができません。 「式に基づいているので編集することはできません」とでてきます。 IIf関数ではそのままの数字をコンボボックスに入力できないのでしょうか? どのようにしたらそのままの数字を反映させることができますでしょうか? どうぞ宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 「tbl_tbl」はテーブル名? いまいちイメージがつきません。 フォーム上にはテキストボックスがあって、そこに入力された数字を テーブルに反映(登録)させたいんですよね。 例えば、フォーム上に「ID」という名前のテキストボックスがあり、また テーブルに反映する為の「登録」ボタンがあるとします。 「ID」に1が入力された状態ではボタンが押されると0で反映、1以外なら その数字を反映するには下記のようにすればよいかと思います。 UPDATE テーブル SET [テーブル].[テキストボックス] = IIf([forms]![フォーム]![ID]=1,0,[forms]![フォーム]![ID]); ※「テキストボックス」とはフォーム上のIDを登録する為のテーブルのフィールド名。 今思ったのですが、テーブルのIDを更新されようとしてるのでしょうか。 そのIDに主キーが設定されていたり、オートナンバーだとしたら 更新できないかもしれません。 あと、フォーム上のテキストボックスのプロパティで書式が数値になっている ことを確認した方がよいかもしれません。
その他の回答 (1)
- naoto0216
- ベストアンサー率46% (183/391)
確認ですが・・・ そのクエリは更新クエリなんでしょうか。 で、「フォームに入れた数字をそのまま反映させたい」とは、 コンボボックスに表示されている数字でテーブルを更新したい ということなのでしょうか。 「正しい場合は0が出てきますが」の「出てきますが」というのは どこに出てくるのでしょうか。
お礼
クエリを基にったフォームのコンボックスではなくてテキストボックスでした。大変に申し訳ありませんでした。フォームのテキストボックスに入力した数字でテーブルを更新したいです。IDを1にした場合0はテキストボックスに出てきます。
補足
EXCELのIF関数で偽の場合セルの内容をそのままにしておきたい場合はセルをそのまま参照すればいいかと思います。同じようにフォームのテキストボックスにそのまま入力すればそれを参照できるかと思ったのですが書き込めませんでした。
お礼
親切に教えて頂きありがとうございました。テーブルの名前申し訳ありませんでした。