找不到 msgbox 代码(已删除)但 msgbox 仍然出现
Can't find msgbox code (Deleted it) but msgbox still appears
我什至无法在网上找到有此问题的人,更不用说解决方案了!
我在编写的一些 VBA 代码中有几个消息框,用于提供调试反馈。一段时间后代码稳定下来,我注释掉了 MsgBox 行。
但一组消息框不会消失。我什至删除了它而不是删除它。最后我决定我必须在某处以某种方式重复,即使所有相关代码最终都调用了这个我删除了 MsgBox 的特定函数。
我看不到任何其他解释,因为我确实删除了代码行。我在整个项目中搜索了构成 MsgBox 文本一部分的字符串片段。 Ctrl + F,设置为搜索整个项目,尝试使用和不使用模式匹配。
我几乎什么也没找到。我决定字符串的构造一定比我想象的要多,而是选择使用 'MsgBox' 进行搜索,以便在我每次使用该命令时进行搜索。我检查了每个项目文件中的每个 MsgBox,并没有发现任何类似代码仍在生成的调试消息的东西。
任何人有任何其他想法可能会发生什么?我最好的理论是我以某种方式隐藏或复制了一些东西,但除了贬低其代码不包含单个 MsgBox 的表单或调用包含单个 MsgBox 的代码之外,我没有做任何我能想到的事情来导致这个。
我会粘贴代码,但您仍然会相信我的话,MsgBox 不存在。
有人可以帮忙吗?它必须以某种方式隐藏在那里的某个地方。
非常感谢,
最初出现 MsgBox 的代码(它根据 RecordSet 的 NoMatch 属性 提供了反馈):
Public Function createRecordSnapshot(Table As String, dbRefIn As String, payNum As String)
Dim fieldNames As String
Dim oldDataSet As String
Dim rs As Recordset
Dim fieldCount As Integer
Dim recordTot As Integer
Dim srchString As String
Set rs = CurrentDb.OpenRecordset(Table, dbOpenDynaset)
srchString = "DBRef = '" & dbRefIn & "' and PayrollRef = '" & payNum & "'"
fieldCount = rs.Fields.Count
rs.FindFirst (srchString)
Dim o As Integer
For o = 0 To fieldCount - 1
fieldNames = fieldNames & rs.Fields(o).Name & "|"
Next o
For o = 0 To fieldCount - 1
oldDataSet = oldDataSet & rs.Fields(o).Value & "|"
Next o
createRecordSnapshot = fieldNames & vbNewLine & oldDataSet
End Function
修改后,最好手动重新编译代码,因为这样 运行 可以更快地编译代码(可以跳过下一个 运行 的编译)并刷新以前编译的代码.该选项位于 VB 编辑器的调试菜单中。
我什至无法在网上找到有此问题的人,更不用说解决方案了!
我在编写的一些 VBA 代码中有几个消息框,用于提供调试反馈。一段时间后代码稳定下来,我注释掉了 MsgBox 行。
但一组消息框不会消失。我什至删除了它而不是删除它。最后我决定我必须在某处以某种方式重复,即使所有相关代码最终都调用了这个我删除了 MsgBox 的特定函数。
我看不到任何其他解释,因为我确实删除了代码行。我在整个项目中搜索了构成 MsgBox 文本一部分的字符串片段。 Ctrl + F,设置为搜索整个项目,尝试使用和不使用模式匹配。
我几乎什么也没找到。我决定字符串的构造一定比我想象的要多,而是选择使用 'MsgBox' 进行搜索,以便在我每次使用该命令时进行搜索。我检查了每个项目文件中的每个 MsgBox,并没有发现任何类似代码仍在生成的调试消息的东西。
任何人有任何其他想法可能会发生什么?我最好的理论是我以某种方式隐藏或复制了一些东西,但除了贬低其代码不包含单个 MsgBox 的表单或调用包含单个 MsgBox 的代码之外,我没有做任何我能想到的事情来导致这个。
我会粘贴代码,但您仍然会相信我的话,MsgBox 不存在。
有人可以帮忙吗?它必须以某种方式隐藏在那里的某个地方。
非常感谢,
最初出现 MsgBox 的代码(它根据 RecordSet 的 NoMatch 属性 提供了反馈):
Public Function createRecordSnapshot(Table As String, dbRefIn As String, payNum As String)
Dim fieldNames As String
Dim oldDataSet As String
Dim rs As Recordset
Dim fieldCount As Integer
Dim recordTot As Integer
Dim srchString As String
Set rs = CurrentDb.OpenRecordset(Table, dbOpenDynaset)
srchString = "DBRef = '" & dbRefIn & "' and PayrollRef = '" & payNum & "'"
fieldCount = rs.Fields.Count
rs.FindFirst (srchString)
Dim o As Integer
For o = 0 To fieldCount - 1
fieldNames = fieldNames & rs.Fields(o).Name & "|"
Next o
For o = 0 To fieldCount - 1
oldDataSet = oldDataSet & rs.Fields(o).Value & "|"
Next o
createRecordSnapshot = fieldNames & vbNewLine & oldDataSet
End Function
修改后,最好手动重新编译代码,因为这样 运行 可以更快地编译代码(可以跳过下一个 运行 的编译)并刷新以前编译的代码.该选项位于 VB 编辑器的调试菜单中。