我负责重构和扩展大型 Access 数据库的功能。现有的 VBA 代码非常糟糕,所以我想通过删除不必要的函数并简化其余部分来清理它。我想知道如何找到函数的所有用法?
至于VBA项目本身,我当然可以搜索他们的名字。至于 SQL 查询:我编写了一个函数,它将所有查询打印到 VBE 的中间窗口,所以我也可以搜索它们。
但许多功能也用于表单和报告中。有没有办法全部找到?有很多复杂的表单/报告,因此简单地查看一个又一个控件或删除该功能并测试一切是否仍然有效是根本不可行的。
不幸的是,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
...您可以使用“常规”文本搜索工具(例如findstr
Windows 中包含的 )来查找某些单词的出现:
C:\export>findstr /I "\<myFunction\>" *
Form1.frm: OnClick ="=myFunction()"