Vba 当我使用DoCmd.OpenForm时,运行时关闭

Vba 当我使用DoCmd.OpenForm时,运行时关闭,vba,ms-access,runtime,Vba,Ms Access,Runtime,我有一个带有按钮的表单,它打开一个新表单,向表中添加一条新记录 在我的PC上访问(完整版),一切正常 当我尝试在带有Access Runtime的服务器上运行它时,会出现如下错误: 由于运行时错误,此应用程序已停止工作。 申请现已截止 (我有荷兰语版本,所以我希望这接近英语对话框消息) 我调试了VBA,但这似乎不是问题所在 它以前工作过: Private Sub Knop62_Click() DoCmd.OpenForm "Machines Toevoegen", , , , acFor

我有一个带有按钮的表单,它打开一个新表单,向表中添加一条新记录

在我的PC上访问(完整版),一切正常

当我尝试在带有Access Runtime的服务器上运行它时,会出现如下错误:

由于运行时错误,此应用程序已停止工作。
申请现已截止

(我有荷兰语版本,所以我希望这接近英语对话框消息)

我调试了VBA,但这似乎不是问题所在

它以前工作过:

Private Sub Knop62_Click()
    DoCmd.OpenForm "Machines Toevoegen", , , , acFormAdd, _
      acDialog, OpenArgs:=Me.Installaties_Id
End Sub

运行时中任何未处理的错误都会弹出错误消息,然后根据您的经验退出应用程序

有很多方法可以做到这一点: 改进错误处理-确保您不会遇到任何未处理的错误。我发现这需要做很多工作

另一种方式?将应用程序编译为accDE。当您使用accDE时,运行时不仅会忽略错误,而且不会关闭

这也意味着所有的局部和全局变量永远不会被重新设置。因此,全局变量,甚至全局REOCRDSET或其他任何东西都将保留它们的值,即使有错误也会这样做。因此: 您的应用程序运行起来就像一列无法停止的恐怖列车。 局部变量甚至全局变量都保留其值。这允许使用应用程序范围内的设置和从不重新设置的变量。即使对于未处理的错误,也不会发生重新设置。它们在给定会话中保持不变(自应用程序启动时起)

因此,我会尝试将您的应用程序作为accDE在该服务器上运行。它不仅会变得更加可靠,而且不会因意外错误而关闭,甚至在遇到错误时也会保留变量的值

看来你犯了一些不速之客的错误。你可以进行寻宝来发现这个错误,或者在此期间尝试一个账户,也许在新的一年里,你最终会发现这个错误或问题。但在此之前,只需将应用程序编译为accDE即可

汇编: 首先,从VBA编辑器(只需点击ctrl-g)。然后从菜单栏中选择调试->编译。在下一步之前,必须确保不存在编译错误

如果以上编译完成,则从UI(主功能区)转到文件->保存和发布

从该面板中,选择Make ACCDE


Access将把您的应用程序编译成“Access可执行文件”。现在,请尝试在另一台计算机上使用accDE文件扩展名运行此应用程序

表单存在并且拼写完全与
Machines-to-voegen
me.Installaties\u-Id
相同,并且拼写正确?
OpenArgs:=
不是必需的,但不会造成伤害。没有发现命令有任何错误。我猜:表单或其代码使用的是安装在计算机上的东西,而不是服务器上的东西。后者使用Access运行时这一事实可能与此无关。太棒了,这实际上可能会有很大帮助。唯一的问题是:我在Access 2016中创建了DB,服务器在2010年运行。。。所以2016年的ACCDE不会在2010年运行,你有没有想过如何解决这个问题?一般来说,你总是希望使用计划部署到的最低通用版本的Access进行开发。即使在使用accDB时,此建议实际上也适用于。随着新功能的添加,您永远无法确定是否可以回到过去。在旧windows 3.1上运行say Word时,我无法获取新Word文档并打开它。在这个行业中,随着时间的推移,兼容性是非常好的,但是试图用以前的版本运行更新版本的软件SystemX是一个非常糟糕的主意。您必须采用2010进行开发,然后可以部署到2013、2016、2019等。因此,您要么在该服务器上安装2016运行时,要么采用2010进行开发周期。一般来说,您必须使用计划部署到的最低通用版本的Access进行开发。因此,如果您使用2013,那么您的运行时将使用2013、2016和2019。如果没有鼠标,您不能在旧的DOS计算机上运行Word的新版本,然后您可以尝试使用Access及时返回。因此,您必须安装较新版本的运行时,或者必须使用2010进行开发。所以,看看您将部署到哪些版本的Access,并使用最低通用版本。