|
▼初心 さん:
> hatena様のご指導どおり、作成し完成したのですが、私の考え方に落ち度がございました。
>トグルボタンをオプショングループ化すると、一度、欠席か失格ボタンを押してしまうと、
> 常にどちらか一方が選択された状態となってしまい、両方とも選択しない状態(元の無選択)
> に戻せないという事態が生じてしまいました。
>(オプショングループの特性上、当然の事なのですが)
> hatena様がおっしゃられた出席の場合の"0"をオプションボタンに組み込めばよいのでしょうが、
> 欠席者がほぼでないので効率性の面と、フォームが狭小である事から出席ボタンは省略したいです。
> 理想としてはもう一度ボタンを押すと戻るというのが理想なのですが
その辺りの不都合はプロパティ設定だけではどうしようもないので、VBAで制御することになりますね。
「もう一度ボタンを押す」とチェックが外れる(出席にする)ということも出来ますが、それだと、点数未入力で出席という矛盾した状態になるおそれがあります。
点数が入力されたら出席扱いにするということでしたので、点数を入力したら オプショングループに 0 を代入して「出席」とするようにすればいいかと思いますが、どうでしょうか。
例えば、点数テキストボックスの更新後処理に、
If IsNull(Me.実技得点) Then
If Nz(Me.実技出欠失) = 0 Then Me.実技出欠失 = 1
Else
Me.実技出欠失 = 0
End If
得点が入力されれば、出席に。
得点を削除してNullになった時に、欠席に。
という処理です。
また、オプショングループの条件付き書式で、得点がNullでなかったら、使用不可 に設定すれば、点数を入力した時点でEnterキーを押せば、オプションはとばして次の項目に移動します。
無駄な項目移動を省略できますし、得点が入力されているのに、欠席か失格が選択されているという矛盾状態を回避できます。
あと、新規レコードで、得点も未入力、欠席失格も選択せずにNullのまま保存されることがないように、フォームの更新前処理で、欠席失格オプションが Null の時は警告を出して、得点を入力するか欠席失格を選択するように即す処理を追加しておくといいでしょう。
|
|