Access快速开发平台最近的版本新增了一个功能,就是在VBA代码可读的情况下,如果出错,按F8可以跳转到出错代码行。
If RDPErrorHandler(Me.Name & ": Sub btnSave_Click()") Then
Resume
Else
Resume ExitHere
End If
Resume就是调整到出错代码行,Resume ExitHere是结束该事件、过程。
但是最近使用,发现VBA密码未输入的情况下,由于对于VBA代码是否可读判断异常,导致出错后错误提示无法消除的问题。
经过调试,确定是CanViewVBACode()函数的判定出现了问题:
Public Function CanViewVBACode() As Boolean
If IsRuntime() or IsMDE() Then
CanViewVBACode = False
Else
CanViewVBACode = True
End If
End Function
测试发现,在accdb格式下,不管是否输入了VBA密码,CanViewVBACode都是返回True,这样就会导致用户虽然看不到VBA代码,但是函数判定他可以看到,从而执行Resume操作,但是用户此时又是无法看到代码的,就会陷入无限循环弹出错误提示的现象。
临时解决方法:
打开basRDPRef模块,找到CanViewVBACode函数,将其改为如下:
Public Function CanViewVBACode() As Boolean
CanViewVBACode = False
End Function
最终解决方案请等待
Access快速开发平台发布新版本。