- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスvba 複数のイベントをまとめて記述したい)
アクセスVBAで複数のイベントをまとめて記述する方法
このQ&Aのポイント
- アクセスVBAで複数のイベントをまとめて記述したい場合、どのように記述すればよいでしょうか?例として、「年」「月」「日」のテキストボックスの値が更新された場合に、それらの値を結合して「日付」にセットする方法について説明します。
- アクセスVBAでは、イベントをまとめて記述するためには、イベントプロシージャを共通のサブルーチンや関数に作成し、各イベントからそのプロシージャを呼び出す方法があります。具体的には、上記の例では、「wk年_AfterUpdate」「wk月_AfterUpdate」「wk日_AfterUpdate」の3つのイベントがありますが、それぞれのイベント内で同じ処理を記述する代わりに、共通のサブルーチンを作成し、そのサブルーチンを各イベントから呼び出すことができます。
- 具体的には、上記の例では、メインフォームの「wk年_AfterUpdate」「wk月_AfterUpdate」「wk日_AfterUpdate」のイベント内で同じ処理が行われています。この場合、以下のように共通のサブルーチンを作成し、各イベントからそのサブルーチンを呼び出すことができます。 Private Sub UpdateDate() Me.wk日付 = Me.wk年 & "/" & Me.wk月 & "/" & Me.wk日 End Sub Private Sub wk年_AfterUpdate() UpdateDate End Sub Private Sub wk月_AfterUpdate() UpdateDate End Sub Private Sub wk日_AfterUpdate() UpdateDate End Sub
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
wk年 / wk月 / wk日 それぞれの初期値はわかりませんが、 以下の様な感じでできそうです。 Private Function AAA() Me.wk日付 = DateSerial(Nz(Me.wk年, 0), Nz(Me.wk月, 0), Nz(Me.wk日, 0)) End Function Private Sub Form_Load() Me.wk年.AfterUpdate = "=AAA()" Me.wk月.AfterUpdate = "=AAA()" Me.wk日.AfterUpdate = "=AAA()" End Sub ※ Me.wk年 & "/" & Me.wk月 & "/" & Me.wk日 で、必ず日付になる保証はあるのでしょうか? なお、上記は、wk年 / wk月 / wk日 への入力は数値だけを許可した場合です。 ちなみに、 wk年に 2013 wk月に 2 wk日に 35 を入力したとしたら、wk日付は 2013/03/07 になります。 ※ wk日付 は、書式で 日付(S) にしていた場合です。
お礼
お礼が遅くなり申し訳ありません。 ありがとうございました。