MS Access:如何找到 VBA 函数的所有用法?

Posted

技术标签:

【中文标题】MS Access:如何找到 VBA 函数的所有用法?【英文标题】:MS Access: How to find all usages of a VBA function? 【发布时间】:2013-01-31 08:23:28 【问题描述】:

我负责重构和扩展大型 Access 数据库的功能。现有的 VBA 代码非常糟糕,所以我想通过删除不必要的函数并简化其余部分来清理它。我想知道如何找到函数的所有用法?

至于VBA项目本身,我当然可以搜索他们的名字。至于 SQL 查询:我编写了一个函数,它将所有查询打印到 VBE 的中间窗口,所以我也可以搜索它们。

但许多函数也用于表单和报表。有没有办法全部找到?有很多复杂的表单/报告,因此简单地查看一个又一个控件或删除功能并测试一切是否仍然有效是根本不可行的。

【问题讨论】:

【参考方案1】:

不幸的是,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

...您可以使用“常规”文本搜索工具(例如 Windows 中包含的findstr)来查找某些单词的出现:

C:\export>findstr /I "\<myFunction\>" *
Form1.frm:                    OnClick ="=myFunction()"

【讨论】:

@Tom ***.com/questions/9612675/… 一些代码,但它不会为您的函数搜索表单属性或查询,并且根据函数,它可以包含在查询中或作为事件。

以上是关于MS Access:如何找到 VBA 函数的所有用法?的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access 获取字段值,通过 VBA 函数运行,并发送到 SQL

MS Access 2010 vba 查询

VBA (Ms-Access) 从宏调用成员函数

MS Access VBA下载附件Mkdir路径不存在

MS Access VBA参考

MS ACCESS---全部通过VBA刷新