0

かなりの数のマクロを含む古い大きなAccessアプリを更新する必要があります。 マクロが使用されているかどうか、およびマクロがどこから呼び出されているかを特定したいと思います。
解決策が見つかりませんでした。MZツールとCSDツールをインストールしていますが、これらは役に立たないようです。また、組み込みのドキュメントツールを使用してフォームのプロパティをPDFに印刷しようとしましたが、コントロールのプロパティとイベントが含まれていないため、どちらも使用しません。
なにか提案を ?

4

2 に答える 2

2

組み込みの依存関係オプションの使用を検討してください。これは、トラック名の自動修正を有効にする必要があることを意味します。ただし、追跡をオンにできるが、オートコレクトをオンにする必要がないことに気付いている人はほとんどいません。

結果は、指定されたオブジェクトの依存関係の美しいツリー ビューです。スクリーンショットは次のとおりです。

ここに画像の説明を入力

この方法でアプリケーションをドリルダウンして「サーフィン」できることに注意してください。選択されたものに依存する両方のオブジェクト、またはその逆 - 選択されたオブジェクトが依存するオブジェクト。

また、任意のオブジェクトをクリックすると、デザイン ビューで開く方法に注意してください。他の開発システムにあったらいいのにと思う素晴らしい機能です。

自動修正トラッキングをオンにしないと、すべてのオブジェクトとそれらの参照の逆が行われるため、初回はかなりの時間と処理がかかる可能性があることに注意してください。ただし、この驚くべき機能のためにインデックスが構築されると、応答時間とこの機能の使用はほぼ瞬時になります。

于 2013-02-16T23:37:22.217 に答える
1

このリンクのおかげで、私はついにこの問題のための独自のクイックツールを書きました:

Sub listControlEvents()
'by Patrick Honorez - www.idevlop.com --- 15-févr-2013
'Purpose   : list buttons calling macros + macro name

    Dim f As AccessObject, frm As Form, c As Control

    For Each f In CurrentProject.AllForms
        Debug.Print f.NAME
        DoCmd.OpenForm f.NAME, acDesign, , , , acHidden
        Set frm = Forms(f.NAME)
        For Each c In frm.Controls
            If c.ControlType = acCommandButton Then
                If c.Properties("OnCLick") <> "[Event Procedure]" Then
                    Debug.Print , c.NAME,
                    Debug.Print c.Properties("OnClick")
                End If
            End If
        Next c
        DoCmd.Close acForm, f.NAME, acSaveNo
    Next f
End Sub
于 2013-02-15T10:19:08.077 に答える