首先升级代码的用法不正确:
http://www.foxtable.com/webhelp/topics/2934.htm
如果我们在AfterOpenProject下面的代码:
Syscmd.Project.Update(False,False)
Forms("窗口1").Open() '可能会出错
'后续其它代码
目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错,当然后续其它的代码也一样会出错。
我们可以用下面的代码避免错误:
If Syscmd.Project.Update(False,False) = False Then '如果没有升级
Forms("窗口1").open()
'后续其它代码
End If
也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。
总之,如果需要在AfterOpenPoject事件中实现自动升级,那么原有的AfterOpenProject事件代码必须包括在这个判断中,只有没有升级的情况下,才执行原来的代码:
If Syscmd.Project.Update(False,False) = False Then '如果没有升级
'原AfterOpenProject事件代码
End If
改正升级代码后如果还有问题,检查一下权限表的设置,确定存在“hp1”的表格,并且已经加载