共通関数などで、コード実行元のフォーム名やレポート名をその都度参照
するには、(Application.)CodeContextObjectプロパティを利用できます。
例えば、新規標準モジュールに以下のサンプルコードを記述し、各フォーム
の更新前処理イベントプロシージャに
Private Sub Form_BeforeUpdate(Cancel As Integer)
Call SetChgDate ' 共通更新処理
End Sub
のように記述すれば、各フォームの更新処理を共通化することが出来ます。
● サンプル ●
' レコード変更時に更新日時をセット
Public Function SetChgDate()
Dim obj As Form ' フォームのみの場合
'Dim obj As Report ' レポートのみの場合
'Dim obj As Object ' フォーム/レポート 両用
' 呼び出し元オブジェクトをセット
Set obj = CodeContextObject
' 更新フラグと更新日時を更新
obj.[更新フラグ] = True
obj.[更新日時] = Format(Now, "YYYYMMDDHHNNSS")
' オブジェクト解放
Set obj = Nothing
End Function
● 補足説明 ●
オブジェクトを
Dim obj As Object
と宣言すれば、呼び出し元がフォームでもレポートでも対応できますが、
どちらかに決まっている場合は、
Dim obj As Form ' フォームのみの場合
あるいは
Dim obj As Report ' レポートのみの場合
のように宣言した方が、リソースの節約になります。
|