コードを実行しているオブジェクトを参照
 共通関数などで、コード実行元のフォーム名やレポート名をその都度参照
するには、(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   ' レポートのみの場合

のように宣言した方が、リソースの節約になります。



Access97/2000



戻る


Excel Word Access VBA! モーグ