5

私は、大きなAccessデータベースの機能のリファクタリングと拡張を担当しました。既存のVBAコードはかなり悪いので、不要な関数を削除して残りを単純化することでクリーンアップしたいと思います。関数のすべての使用法をどのように見つけることができるのだろうか?

VBAプロジェクト自体については、もちろん名前を検索できます。SQLクエリについて:すべてのクエリをVBEの中間ウィンドウに出力する関数を作成したので、それらも検索できます。

ただし、フォームやレポートでも多くの機能が使用されます。それらすべてを見つける方法はありますか?複雑なフォーム/レポートがたくさんあるので、コントロールを次々に確認したり、関数を削除してすべてがまだ機能するかどうかをテストしたりするだけでは、まったく実行できません。

4

1 に答える 1

4

残念ながら、Access には、フォームとレポートのプロパティを含む検索機能 (私が知っている) がありません。

ただし、SaveAsTextフォームとレポートをテキスト ファイルにコピーする、文書化されていない方法があります。すべてのフォームとレポートを抽出すると...

Dim db As Database
Dim d As Document

Set db = CurrentDb()
For Each d In db.Containers("Forms").Documents
    Application.SaveAsText acForm, d.Name, "C:\export\" & d.Name & ".frm"
Next

For Each d In db.Containers("Reports").Documents
    Application.SaveAsText acReport, d.Name, "C:\export\" & d.Name & ".rpt"
Next

...「通常の」テキスト検索ツール ( findstrWindows に含まれている など) を使用して、特定の単語の出現箇所を見つけることができます。

C:\export>findstr /I "\<myFunction\>" *
Form1.frm:                    OnClick ="=myFunction()"
于 2013-01-31T08:34:43.687 に答える