2

我开发了一个 Microsoft access 2010 数据库,它使用嵌套了几层的导航子表单。当用户单击导航选项卡以更改子表单(源对象)中显示的表单时,会出现一个对话框,询问用户:

"Do you want to save changes to the design of the form 'form name'?"  

这在已部署的数据库中显然是不可接受的。有人可以解释如何摆脱这种行为,以便用户可以使用导航选项卡而不会被询问是否要更改表单的设计?

我已经编写了允许用户决定是否保存数据更改的逻辑。我不希望用户收到有关设计更改的提示。

4

3 回答 3

2

我唯一能够开始工作的是在每个导航按钮的 OnEnter 事件中关闭警告,并在每个“子”表单的 Open 事件中重新打开它们 - 例如

Private Sub navbtnDetails_Enter()
    DoCmd.SetWarnings False
End Sub

Private Sub Form_Open(Cancel As Integer)
    DoCmd.SetWarnings True
End Sub

这应该是 Open 事件,而不是 Load 事件,因为 Load 事件是在加载表单数据之后发生的。

这种方法的一个好处是它可以保留对任何数据表的更改 - 列宽、排序等,尽管这可能是也可能不是一件好事,这取决于您需要 UI 的工作方式。

这与 Access 2013 一起使用。

于 2015-09-16T21:51:49.647 回答
1

尝试将 AllowDesignChanges 属性设置为“仅设计视图”

于 2013-10-14T07:56:40.967 回答
0

我知道这是一个老问题,但这个解决方案可能对其他人有所帮助:

手动:取消选中文件、选项、当前数据库中的“在数据表视图中启用设计更改”。以编程方式:CurrentDb.Properties("AllowDatasheetSchema") = false

这是部署之前的最佳实践之一: MS Access 开发人员中心但是,此更改会阻止在数据表视图中编辑表,因此我建议将其添加到函数中并根据需要将其打开/关闭。

Public Function SetDesignChange(chnage As Boolean)
CurrentDb.Properties("AllowDatasheetSchema") = change
End Function
于 2022-03-02T07:34:16.707 回答