在数据表对象中使用ColumnHidden属性

时间:2008-11-05 19:42:41

标签: ms-access subform datasheet

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

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

2 个答案:

答案 0 :(得分:2)

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

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

  • 只是把它放在你的桌子上,
  • 将列拖到表单上(格式化,放置并不重要)
  • 将其设置为数据表视图
  • 编辑标签(这些成为列标题)
  • 更改Tab键顺序(这将控制列的显示顺序)
  • 查看数据表并隐藏所需的列
  • 保存表单
  • 将此表单作为子表单添加到主表单

答案 1 :(得分:0)

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

  DoCmd.Close acForm, Me.Name, acSaveNo

但由于这是一个数据表,你不能这样做。

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

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

但事实上,这确实是一个痛苦的事情。

我担心这是使用数据表的缺点之一,因为没有办法定义一个不能保存最终用户UI数据的关闭命令按钮。