• ベストアンサー

AccessVBAのチェックボックスに関する質問です。

AccessVBAの初心者です。 チェックボックスについての質問です。 掻い摘んで説明しますので判り辛いかもしれませんが、今構築しているデータベースの中のひとつに、チェックボックスのチェックが外れたときにメッセージボックスが出るようなvbOKCancelの組み込み関数を用いたプログラムを作っています。 そのキャンセルを選択した時に、クリックする前の状態に戻すようなプログラムが組みたいのですが、上手くできません。 要するに、チェックがついているままで、チェックボタンをクリックした事実も何事もなかったような状態まで戻したいです^^; 現在はPrivate Subで始まるプログラムなのでExit Sub でプロシージャから抜け出す前の状態に戻せないかと検討していました。 的外れな検討かどうかも含め、アドバイスをお願いいたします。

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

そのチェックボックスの更新前イベントで、 Dim lngAns As Long If Me!チェックボックスコントロール名 = False Then   lngAns = MsgBox("確認メッセージ", vbOKCancel)   If lngAns = vbCancel Then     Cancel = True   End If End If だと、どうでしょうか?

8607
質問者

お礼

早い解答で感謝しています☆ Dim mchk As Integer If Me.生産中止.Value = False Then mchk = MsgBox("生産中止を解除しますか?", vbOKCancel) If mchk = vbCancel Then Me.生産中止.Value = True End If End If 私がやりたかったことがお二人の答えを合わせてることでできました!! これからOKだった場合のアクションプログラムをじっくり考えてみたいと思います☆ またわからなくなったらアドバイスをお願いします♪

その他の回答 (1)

  • Nigun
  • ベストアンサー率22% (200/893)
回答No.1

Exitで処理を抜ける前にチェックボックスの値を戻す処理をしないといけないですね。 なので If Me.チェック0.Value = False Then Me.チェック0.Value = True Exit Sub End If にすればいけます。

8607
質問者

お礼

早い解答で感謝しています☆ Dim mchk As Integer If Me.生産中止.Value = False Then mchk = MsgBox("生産中止を解除しますか?", vbOKCancel) If mchk = vbCancel Then Me.生産中止.Value = True End If End If 私がやりたかったことがお二人の答えを合わせてることでできました!! これからOKだった場合のアクションプログラムをじっくり考えてみたいと思います☆ またわからなくなったらアドバイスをお願いします♪

関連するQ&A