【问题标题】:using ColumnHidden properties within Datasheet objects在数据表对象中使用 ColumnHidden 属性
【发布时间】:2008-11-05 19:42:41
【问题描述】:

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

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

【问题讨论】:

  • 那么数据表的来源是查询/表吗?你总是隐藏相同的列还是动态的?
  • 源是一个表。我自己隐藏了表格列。

标签: ms-access subform datasheet


【解决方案1】:

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

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

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

【讨论】:

  • 不幸的是,我根据用户的选择隐藏了列。
  • 我还隐藏了我们不希望用户填写的列,具体取决于他们所做的选择。
  • 试过这个并且有效。我什至不必更改代码来隐藏/取消隐藏列(这是我最大的恐惧,顺便说一句)!谢谢。
【解决方案2】:

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

  DoCmd.Close acForm, Me.Name, acSaveNo

但由于它是数据表,因此您不能这样做。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    相关资源
    最近更新 更多