- ベストアンサー
アクセスのフォームについて初歩的な質問です
項目『性別』が『男』と『女』と選択できるようになっているのですが、 選択項目が『男』だったら、項目Aに入力できないようにするもしくは、 『入力できません』と表示したいと思っています。 さらに項目Bがあり、『女』を選択したら同様の処理をしたいと思っています。 つまり、項目Aは女性用の入力項目、項目Bは男性用の入力項目ということです。 よい方法をご存知の方がいらっしゃったらお教えください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーの内容は教えて頂きたいものですが、 回答者はご質問者の背後霊ではありませんよ。 多分、 回避方法としては 1)テーブル設計。テーブルのフィールドプロパティにて 値要求をはい、空文字列の許可をいいえにしておけば レコード移動時(保存時)にAccessから叱られます。 (性別の指定をしないと抜けられない) 2)VBAで逃げる。微妙な人がいらっしゃいますので (^_^;) if nz(Me!性別,"")= "" then Me!項目A.Enabled = true Me!項目B.Enabled = true 'true か false かはお好きなように exit sub else Me!項目A.Enabled = Me!性別 = "女" Me!項目B.Enabled = Me!性別 = "男" end if とかですかね。 前述のレスにもありますが「それぞれ」両方に設定してください。 ちょっと飲んでるので、かなり危ういかも? ごめんなさいね。 Me!性別 = "女" ここで性別フィールドに一度も入力がされていない場合に 性別の値は は Null となりますので 判別式 Me!性別 = "女" は 左辺が Nullですので結果 Null となります。 つまり Me!項目A.Enabled = Null となってエラーになったのかなと。 ※テーブル設計の時点で行ったほうが間違いは少ないと思います。
その他の回答 (2)
- bonaron
- ベストアンサー率64% (482/745)
基本的には No.1 さんの回答どおりです。 他に、項目A、項目B 入力後に 『性別』が変更された場合も考慮する必要がありますね。
補足
そうですね、ご指摘ありがとうございます! おっしゃっているような場合はどうすればよいのでしょうか?
- nicotinism
- ベストアンサー率70% (1019/1452)
デザインビューで、予めEnabled か Locked にしておいて レコード移動時のイベントと性別の更新後イベントにそれぞれ Me!項目A.Enabled = Me!性別 = "女" Me!項目B.Enabled = Me!性別 = "男" では?
お礼
補足とお礼が逆になってしまいましたすみません・・・ 補足質問ですが、何も入力していない状態で他の項目に移動したらエラーが出ました・・・どうしたらいいでしょうか?
補足
ありがとうございます!出来ました!!
お礼
ありがとうございます! 無事解決しました^^! 今後質問は詳細をきちんと書くように注意します^^; ご丁寧にありがとうございました!!