- ベストアンサー
AccessVBAのチェックボックスに関する質問です。
AccessVBAの初心者です。 チェックボックスについての質問です。 掻い摘んで説明しますので判り辛いかもしれませんが、今構築しているデータベースの中のひとつに、チェックボックスのチェックが外れたときにメッセージボックスが出るようなvbOKCancelの組み込み関数を用いたプログラムを作っています。 そのキャンセルを選択した時に、クリックする前の状態に戻すようなプログラムが組みたいのですが、上手くできません。 要するに、チェックがついているままで、チェックボタンをクリックした事実も何事もなかったような状態まで戻したいです^^; 現在はPrivate Subで始まるプログラムなのでExit Sub でプロシージャから抜け出す前の状態に戻せないかと検討していました。 的外れな検討かどうかも含め、アドバイスをお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そのチェックボックスの更新前イベントで、 Dim lngAns As Long If Me!チェックボックスコントロール名 = False Then lngAns = MsgBox("確認メッセージ", vbOKCancel) If lngAns = vbCancel Then Cancel = True End If End If だと、どうでしょうか?
その他の回答 (1)
- Nigun
- ベストアンサー率22% (200/893)
Exitで処理を抜ける前にチェックボックスの値を戻す処理をしないといけないですね。 なので If Me.チェック0.Value = False Then Me.チェック0.Value = True Exit Sub End If にすればいけます。
お礼
早い解答で感謝しています☆ Dim mchk As Integer If Me.生産中止.Value = False Then mchk = MsgBox("生産中止を解除しますか?", vbOKCancel) If mchk = vbCancel Then Me.生産中止.Value = True End If End If 私がやりたかったことがお二人の答えを合わせてることでできました!! これからOKだった場合のアクションプログラムをじっくり考えてみたいと思います☆ またわからなくなったらアドバイスをお願いします♪
お礼
早い解答で感謝しています☆ Dim mchk As Integer If Me.生産中止.Value = False Then mchk = MsgBox("生産中止を解除しますか?", vbOKCancel) If mchk = vbCancel Then Me.生産中止.Value = True End If End If 私がやりたかったことがお二人の答えを合わせてることでできました!! これからOKだった場合のアクションプログラムをじっくり考えてみたいと思います☆ またわからなくなったらアドバイスをお願いします♪