こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセスクエリで偽の場合そのままの数字を入れたい

教えてください。
IIf関数を使って正しい場合は0、偽の場合はフォームに入れた数字をそのまま反映させたい場合 IIf(([tbl_tbl]![ID]=1 ),0,([Forms]![frm_frm]![コンボ1]))
正しい場合は0が出てきますが偽の場合そのままの数字を反映させることができません。
「式に基づいているので編集することはできません」とでてきます。
IIf関数ではそのままの数字をコンボボックスに入力できないのでしょうか?
どのようにしたらそのままの数字を反映させることができますでしょうか?
どうぞ宜しくお願い致します。

投稿日時 - 2015-06-15 13:25:19

QNo.8994705

困ってます

質問者が選んだベストアンサー

#1です。
「tbl_tbl」はテーブル名?

いまいちイメージがつきません。
フォーム上にはテキストボックスがあって、そこに入力された数字を
テーブルに反映(登録)させたいんですよね。

例えば、フォーム上に「ID」という名前のテキストボックスがあり、また
テーブルに反映する為の「登録」ボタンがあるとします。
「ID」に1が入力された状態ではボタンが押されると0で反映、1以外なら
その数字を反映するには下記のようにすればよいかと思います。

UPDATE テーブル SET [テーブル].[テキストボックス] = IIf([forms]![フォーム]![ID]=1,0,[forms]![フォーム]![ID]);
※「テキストボックス」とはフォーム上のIDを登録する為のテーブルのフィールド名。

今思ったのですが、テーブルのIDを更新されようとしてるのでしょうか。
そのIDに主キーが設定されていたり、オートナンバーだとしたら
更新できないかもしれません。

あと、フォーム上のテキストボックスのプロパティで書式が数値になっている
ことを確認した方がよいかもしれません。

投稿日時 - 2015-06-16 12:25:09

お礼

親切に教えて頂きありがとうございました。テーブルの名前申し訳ありませんでした。

投稿日時 - 2015-06-16 13:40:15

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

確認ですが・・・

そのクエリは更新クエリなんでしょうか。
で、「フォームに入れた数字をそのまま反映させたい」とは、
コンボボックスに表示されている数字でテーブルを更新したい
ということなのでしょうか。

「正しい場合は0が出てきますが」の「出てきますが」というのは
どこに出てくるのでしょうか。

投稿日時 - 2015-06-15 19:54:58

補足

EXCELのIF関数で偽の場合セルの内容をそのままにしておきたい場合はセルをそのまま参照すればいいかと思います。同じようにフォームのテキストボックスにそのまま入力すればそれを参照できるかと思ったのですが書き込めませんでした。

投稿日時 - 2015-06-16 10:51:31

お礼

クエリを基にったフォームのコンボックスではなくてテキストボックスでした。大変に申し訳ありませんでした。フォームのテキストボックスに入力した数字でテーブルを更新したいです。IDを1にした場合0はテキストボックスに出てきます。

投稿日時 - 2015-06-16 10:33:44

あなたにオススメの質問