4

我有一个带有数据表子表单的MS Access表单。 使用代码,我更改了它的各个列的ColumnHidden属性。但是,当我关闭表单时,系统会询问我是否保存数据表表格的表格布局。

  • 如何阻止表单不断要求用户使用相同的表格布局?
  • 我是否别无选择,只能将数据表更改为常规子表单?
4

2 回答 2

2

如果您总是隐藏相同的列 - 创建一个仅包含您想要显示的列的查询,并将其用作子表单的来源。

如果您仍然需要一些隐藏字段(子键等),则必须创建一个常规表单。还不错:

  • 把它放在你的桌子上,
  • 将列拖到表单上(格式和位置无关紧要)
  • 将其设置为数据表视图
  • 编辑标签(这些成为列标题)
  • 更改标签顺序(这控制了列的显示顺序)
  • 查看数据表并隐藏所需的列
  • 保存表格
  • 将此表单作为子表单添加到主表单
于 2008-11-05T20:21:40.693 回答
0

我不确定是否有一种简单的方法可以做到这一点,因为 Access 使用表单保存了很多属性。如果您没有使用数据表视图,您可以隐藏表单上的 CLOSE 按钮并将其替换为命令按钮以使用以下代码关闭表单:

  DoCmd.Close acForm, Me.Name, acSaveNo

但是因为它是一个数据表,所以你不能这样做。

您可以尝试将数据表作为子表单嵌入到未绑定的父表单中,但我不知道在父表单上的命令按钮后面使用上面的代码是否会将列宽保存到嵌入的子表单。

一种解决方案是在数据表的 OnLoad 事件中重新初始化列宽。然后,您可以使用 acHidden 打开表单,并在 OnLoad 事件中,将列宽设置为正确的值(您需要将英寸乘以 1440 以获取缇值以分配给列宽属性),然后在在 OnLoad 结束时,将 Me.Hidden 设置为 False。

但这确实是一件让人头疼的事情。

恐怕这是使用数据表的缺点之一,因为无法定义不会保存最终用户 UI 数据的关闭命令按钮。

于 2008-11-07T04:43:56.530 回答