【问题标题】:MS Access VBA Code Evaluation Error when sharing ACCDE file on a Network在网络上共享 ACCDE 文件时 MS Access VBA 代码评估错误
【发布时间】:2017-03-24 22:07:28
【问题描述】:

我目前有一个在共享网络上运行的 MS Access 2016 应用程序。前端是保存在共享文件夹中的 ACCDE 文件,后端保存在同一文件夹的子文件夹中(任何可以访问前端的人都可以访问后端)。我让用户在他们的桌面上创建一个快捷方式来访问前端。这使我可以进行较小的更新,而无需每个人都下载最新版本。该工具的大多数功能都可以正常工作。但是,我一直在其中一种表格上遇到问题。我有一个更新前事件,当您离开记录时,系统会询问您是否要保存。如果单击是,则会出现以下错误消息:

“作为事件属性设置输入的更新前表达式产生了以下错误:保存操作已取消。
当事件由于无法评估事件逻辑的位置而无法运行时,会发生此错误。例如,如果表单的 OnOpen 属性设置为 =[Field],则会发生此错误,因为宏或事件名称应在事件发生时运行。"

这是我尝试运行的 VBA 代码。如果有人可以在这里帮助我,我将不胜感激。谢谢!

Private Sub Form_BeforeUpdate(Cancel As Integer)
If BooReSequence = True Then
Exit Sub
End If
'When exit current tab with unsaved changes, pop up option for 'Discard' or 'Save'
Dim TLResponse As Integer

If Forms.frmFullCourseInfo.sbfrmTrainingElements.Form.Dirty Then
TLResponse = MsgBox("Do you want to save your changes?", vbYesNo, "Unsaved Changes")

  If TLResponse = vbYes Then
      DoCmd.Save
  Else
      Me.Undo
  End If

End If

结束子

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    前端是保存在共享文件夹中的 ACCDE 文件,后端保存在同一文件夹的子文件夹中(任何可以访问前端的人都可以访问后端)。我让用户在他们的桌面上创建一个快捷方式来访问前端。这使我可以进行较小的更新,而无需每个人都下载最新版本。

    这也可能导致您所描述的那种问题。每个人必须拥有自己的前端文件本地副本。

    【讨论】:

    • 我实际上只是想出了问题所在。下面的链接解释了这个问题,基本上 DoCmd.save 命令是必要的。我删除了它,问题就解决了。除此之外,我没有遇到通过网络共享文件和用户通过快捷方式访问的问题。戈德,我会遇到什么类型的问题?到目前为止,我只部署到少数用户(bytes.com/topic/access/answers/…
    • 我完全不同意戈德的观点。没有证据表明他的陈述是正确的。我构建了许多前端 (FE) 和后端 (BE) Access 应用程序,具有大量表单驱动的交互,并且几乎完全在 VBA 中完成。我有多达 60 人一次使用一个文件,并且从未遇到过此类问题。这一切都取决于你如何构建 [BE]。您通过 VBA 做的事情越多,使用绑定表单等前端控件的次数越少,您在幕后使用的权力就越大。
    • 在我的例子中,我有一个完全良性的 BE 结构,但我必须有单独的 FE 数据库,否则我会遇到数据库锁定问题以及其他难以追踪的错误。与 Craigs 的建议相反,我只有在 VBA 在我的表单后面执行时遇到问题。具有标准绑定控件的基本表单行为正常,但多个用户使用 VBA 访问同一个数据库文件和表单时,它失败了。或许 Gord 对“必须”的使用对 Craig 来说有点强,但在某些情况下,单独的 FE 副本可以解决问题。 FE 的本地副本还可以通过减少网络流量来提高性能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    相关资源
    最近更新 更多