• ベストアンサー
※ 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

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.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) にしていた場合です。

coconopapa
質問者

お礼

お礼が遅くなり申し訳ありません。 ありがとうございました。

関連するQ&A