设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2868|回复: 10
打印 上一主题 下一主题

[其它] 关于,FrozenColumns 属性

[复制链接]
跳转到指定楼层
1#
发表于 2006-7-13 04:42:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
==========
FrozenColumns 属性
               

可以使用 FrozenColumns 属性来确定在数据表中将冻结的列数。冻结的列显示在数据表的左边,并且在水平滚动数据表时,它们不会移动。

注意   FrozenColumns 属性只能应用于“数据表”视图中的表、窗体及查询。

设置

单击“格式”菜单上的“冻结列”时,Microsoft Access 将设置 FrozenColumns 属性。

在 Visual Basic 中,此属性设置为 Integer 值,用于指出在数据表中使用“冻结列”命令冻结的列数。记录选定器字段始终是被冻结的,所以默认值是 1。因此,如果冻结一列,FrozenColumns 属性设置将为 2;如果冻结两列,它设置将为 3;依次类推。

此属性设置在所有视图中都是只读的。

说明

当使用“冻结列”命令来冻结列时,Microsoft Access 将自动按照冻结它们的顺序,把其移动到数据表的最左边。例如,如果冻结三列,它们将成为数据表的第一、第二和第三列。因为记录选定器字段列始终是被冻结的,在这里,FrozenColumns 属性将设置为 4。冻结的三列,其 ColumnOrder 属性将设置为 1、2 和 3 (按照它们被冻结的顺序)。

如果单击“格式”菜单上的“取消对所有列的冻结”命令,全部被冻结的列都将取消冻结,并且 FrozenColumns 属性设置为 1。

注意   如果“冻结列”命令改变了列次序,则“取消对所有列的冻结”命令将不会恢复列原有的顺序。
==================


帮助中说 “此属性设置在所有视图中都是只读的。”,那么也就是说,无法在VBA中用代码设置该属性了,只能通过ACCESS中的菜单命令,在MDB格式下设置?

我做的小MDB程序,编译成MDE后,需要在MDE运行时,修改冻结列,关闭时,我用VBA 读取该属性并保存,下次打开MDE时,能用VBA再设置该属性。这样希望能实现,修改冻结的列后,MDE能自动保存的效果。



MDE中数据表的字段,宽度,顺序,是否隐藏,我都已经实现调整后,能自动保存。MDB文件格式下,这些功能都是自动的。编译成MDE后,就要手动VBA实现,是不是,各位高手?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-7-13 05:39:00 | 只看该作者
在VBA中可以用下面的代码设置冰结列

Private Sub Form_Load()
Me![Explain].SetFocus
DoCmd.RunCommand (acCmdFreezeColumn)
Me![GroupName].SetFocus
DoCmd.RunCommand (acCmdFreezeColumn)
Debug.Print Me.FrozenColumns
End Sub

3#
 楼主| 发表于 2006-7-13 06:30:00 | 只看该作者
谢谢,我试试,你的例子中是冻结了2列,对吗?[Explain],[GroupName]。

4#
发表于 2006-7-13 06:34:00 | 只看该作者
以下是引用xlonger在2006-7-12 22:30:00的发言:


谢谢,我试试,你的例子中是冻结了2列,对吗?[Explain],[GroupName]。





    [Explain],[GroupName] 分别是要冻结的字段名

    如果没有这个参数,会把所有列都冻结的

点击这里给我发消息

5#
发表于 2006-7-13 18:45:00 | 只看该作者
对于MDE,我现在是把所有字段的宽度及字段顺序,以及字段的冻结情况保存到表中,可做成多种配置,然后由用户自由设置.
因为冻结字段是不允许改变字段的前后顺序,所以如果用户需要调整冻结字段的顺序的话,需要先解冻,再调整字段顺序,最后再冻结.
6#
 楼主| 发表于 2006-7-13 21:41:00 | 只看该作者
以下是引用tmtony在2006-7-13 10:45:00的发言:
对于MDE,我现在是把所有字段的宽度及字段顺序,以及字段的冻结情况保存到表中,可做成多种配置,然后由用户自由设置.
因为冻结字段是不允许改变字段的前后顺序,所以如果用户需要调整冻结字段的顺序的话,需要先解冻,再调整字段顺序,最后再冻结.



是的,当MDE或者MDB运行时,冻结的字段是不允许改变字段的前后顺序。如果用户需要调整冻结字段的顺序的话,需要先解冻,再调整字段顺序,最后再冻结.

我在窗体关闭时,首先保存了“字段顺序”,“字段宽度”,“是否隐藏”到一个表,以及“冻结的列”的属性值到一个字段。

窗体打开时,首先打开一个 带“ORDER BY 字段顺序”子句 的记录集,读取保存的值记录,进行设置子窗体数据表的“字段顺序”,“字段宽度”,“是否隐藏”3个属性,然后再根据保存的“冻结的列”的属性值,决定用VBA冻结几列,就是冻结子窗体数据表的前【“冻结的列”的属性值-1】个字段列。



不知道,这样是否合理,请大家指教。想实现这个功能很长时间了,现在终于要成功了。





点击这里给我发消息

7#
发表于 2006-7-13 22:08:00 | 只看该作者
正是如此,也可保存当前的排序与Filter. 所有筛选条件可导出及导入,而且可将用户一个常用的筛选条件作为窗体一打开的默认的条件.
再延伸一下,可将子窗体的 条件格式 字体 网格 等等都可让用户自定义并保存
按照 窗体界面设计的准则来讲 用户调整过的界面包括窗口的位置可以自动记忆并还原. 不过, 有些功能需要以消耗资源为代价,要平衡一下
8#
 楼主| 发表于 2006-7-13 22:44:00 | 只看该作者
是的,所有功能,都要用VBA手工来实现的话,太累了,而且这也是本末倒置。根据需求情况,对一些需求非常强的方面,手工实现一下。如果真是对用户界面要求很高,那应该换开发工具了,或者用专门的控件。



9#
 楼主| 发表于 2006-7-15 06:07:00 | 只看该作者
在窗体打开,设置属性时,要注意列隐藏和冻结列有可能冲突。隐藏的列,不能被冻结。
10#
发表于 2006-7-15 06:23:00 | 只看该作者
隐藏了当然不能冻结.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-10 07:41 , Processed in 0.122150 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表