使用acSaveYes关闭时,访问表单编辑不会保存

时间:2017-05-08 21:39:26

标签: access-vba

我无法访问以保存我使用VBA编辑的表单来隐藏(或取消隐藏)列。基本代码如下。我打开表单(在数据表模式下因为我正在更改ColumnHidden属性),进行更改,然后关闭并保存,但它不保存更改。试验,我将acSaveYes改为acSavePrompt,它甚至没有提示我保存。这与数据表模式有什么关系吗?从来没有在设计模式下进行类似编辑的问题。如果是这样,我如何制作并保存这样的更改。谢谢你的任何想法!

DoCmd.OpenForm "Form1", acFormDS
Forms![Form1].MyColumn.ColumnHidden = True
DoCmd.Close acForm, "Form1", acSaveYes

1 个答案:

答案 0 :(得分:0)

使用VBA进行的更改被Access视为临时更改,即使您明确保存对象,也不会保存。这种行为是有意的(并且非常有用,因为它允许您根据需要随时隐藏事物,而无需担心在用户完成表单后还原更改)。例外情况是当用户首先让VBA进行更改,然后切换到布局视图并进行其他更改,然后保存对象。在这种情况下,VBA所做的更改将被保存。

据我所知,你无法改变这一点。显然,您可以手动进行更改然后保存,或者根据您在某处设置的内容打开表单后检查列是否可见。