我试图通过代码隐藏Access 2007拆分表单中的特定列。我需要表单来检查某些条件,看它是否需要显示列。我在表单的'Activate'事件中有代码来隐藏列,如下所示:
txtControl.ColumnHidden = True
此代码在“打开”事件中起作用,但如果我在激活上隐藏列,则在关闭表单并再次打开之前,它不会显示这些更改。我试过调用表单的刷新,重绘和重新查询方法,但这不起作用。请帮忙!
编辑:理想情况下,只要焦点切换到此表单,我就会发生此事件。这就是我使用Activate事件而不是Open事件的原因。
答案 0 :(得分:7)
尝试在表单的Current或Load事件中进行设置。在设置该属性后,您可能还需要重新查询控件:Me.TextControl.Requery
当前每次更改表单的记录时都会调用该表单,表单将被重新绘制或重新获取。顾名思义,在表单加载其记录后打开表单后,加载一次。对于我来说,这些对我来说比使用Activate更可靠,这与表格的重点更加紧密,而不是你想要的。
答案 1 :(得分:0)
在使用Access 2002之前,我遇到过这样的问题。通过将子表单源对象设置为等于自身,然后运行requery,我能够通过子表单解决问题。
Me.SubForm.SourceObject = Me.SubForm.SourceObject
Me.SubForm.Requery
查看此技术是否适用于您的特定情况。