如何找出MS Access中调用函数的位置?

时间:2017-03-06 20:06:23

标签: vba ms-access access-vba access

我正在处理由其他人创建的MS Access数据库应用程序。有一个特定的代码行(一个函数)将被随机调用,我不知道为什么要调用它或它做什么。我搜索(ctrl + F)整个项目的东西调用这个函数,但我找不到它。如何找出调用此函数的原因? (见下文)。谢谢!

Public Function Concat(strIOSC As String, strFeature As String) As String

 Static strLastIOSC As String
 Static strFeatures As String

 If strIOSC = strLastIOSC Then
    strFeatures = strFeatures & ", " & strFeature
 Else
     strLastIOSC = strIOSC
     strFeatures = strFeature
 End If

 Concat = strFeatures

结束功能

1 个答案:

答案 0 :(得分:1)

如果您只搜索过脚本和模块,那么您的范围太窄了。

像这样的公共函数也可以在表达式中使用,因此如果使用计算字段,则需要检查查询,报表,表单控件,宏,甚至表格。取决于大小对于数据库,以及调用函数的频率,您可以以有针对性的方式手动搜索,也可以使用public sub输出可搜索的内容。 This sub can get you started. I think it outputs every possible location for expressions.不幸的是,每个对象都有自己的文本文件,需要单独搜索,除非你构建一个子文件也是如此。

关于你的函数做什么,看起来它使用Static strLastIOSC变量记录每个输入,与第二个函数调用传递的参数进行比较,如果它们匹配则连接两个strFeature输入并输出结果。

所以基本上第一个参数告诉函数这是一个新的连接实例的开头,还是现有实例的延续。第二个参数是要连接的项。

Static关键字表示即使在函数运行后也存储该值,因此它可以将最后一次调用与当前调用进行比较,以确定是否将第二个参数添加到之前保存的参数,或清除记忆并准备新的连接。

鉴于其设计,它可能在查询/报告/表单中使用,其中strIOSC可能是主要关键字段或GROUP BY中的字段。