Office中国论坛/Access中国论坛

标题: 表达式应用一:连续窗体高亮当前行 [打印本页]

作者: t小宝    时间: 2010-3-25 20:46
标题: 表达式应用一:连续窗体高亮当前行
Access中的连续窗体用条件格式可以达到高亮当前行的效果,实现方法不难,网上也有例子。
但众所周知条件格式的缺点是闪屏太厉害,估计大多数人都不敢用它实现此功能。
但不必灰心,办法还是有的,这里介绍一种简便易行的方法,效果比条件格式要好得多。

步骤:
1、建一连续窗体,窗体数据源必须有一个唯一值字段,这点是必须的,假设此字段名为ID。
2、在窗体页眉添加一个文本框,命名为当前ID,设可见性为假。
3、在主体节上添加用于显示数据的文本框,背景设为透明,调整大小间距以形成类似表格的效果。
4、在窗体的主体节上添加一个文本框,将它置于底层,命名为背景,设置此文本框的属性:
    左边距:0   (也可以自定)
    上边距:0   (也可以自定)
    宽度:与窗体相同  (也可以自定)
    高度:与主体相同  (也可以自定)
    特殊效果:平面
    背景样式:透明
    边框样式:透明
    前景色:15002588    (这个就是当前行背景的颜色,也可以自定)
    字体名称:Times New Roman
    字号:20    (可视节的高度而定)
    控件来源:=IIf([ID]=[当前ID],"██████████████████████████████████████████","")    (其中字符"█"的个数可以根据窗体宽度自定)
    可用:否
    是否锁定:是
5、在窗体的成为当前事件过程添加代码:
    Me.当前ID = Me.ID

通过以上步骤,其中只须一句代码,就大功靠成了。

至此,可以看出,这个方法的原理就是:
    通过IIF表达式作为控件源决定文本框显示的文本,如果在当前行则为多个字符"█",由于文本框的字体用Times New Roman,这些字符就可填满文本框,这样文本框的前景色就好象是主体的背景色,如果非当前行则为空字符,这样就可显示主体本来的颜色。

如不清楚可看附件的例子,里面还有用相同方法做的当前行画框和隔行变色的例子。

[attach]41773[/attach]
作者: goto2008    时间: 2010-3-25 20:50
本帖最后由 goto2008 于 2010-3-25 20:54 编辑

抢沙发。。。。。先谢谢大哥分享。
大哥,我看了你的隔行变色。。。删了其中一行,隔行就不变色了。。。

这个问题也是困扰我很久了。。好像从来没看过比较好的解决方案。
作者: t小宝    时间: 2010-3-25 20:55
抢沙发。。。。。先谢谢大哥分享。
大哥,我看了你的隔行变色。。。要是删了其中一行,隔行要是能再变色就更好了
goto2008 发表于 2010-3-25 20:50

最好还是用我另外一个用图片做的隔行变色方法吧
作者: luhao    时间: 2010-3-25 21:47
see
作者: changweiren    时间: 2010-3-25 22:22
用图片做的隔行变色方法好
作者: 简    时间: 2010-3-25 22:25
这个方法也不错。
作者: 红尘如烟    时间: 2010-3-25 22:47
最好的方法就是用2007版的Access,哈哈
作者: leijiqiang    时间: 2010-3-26 08:27
做得不错,收藏.
~说真得,ACCESS有很多小东东让人难受.无法很好的实现.
作者: lovehere    时间: 2010-3-26 11:22
学习了,收藏先
作者: ycxchen    时间: 2010-3-29 09:42
谢谢分亨,学习精品!
作者: yanwei82123300    时间: 2010-3-29 12:19
thank you sharing it
作者: sagemeyou    时间: 2010-6-1 10:26
支持小宝兄。
作者: yanwei82123300    时间: 2010-6-1 11:52
用图片做的隔行变色方法好
作者: xlb004    时间: 2016-7-8 13:57
\\\\\\\\\\\\\\\\\\\
作者: 飘摇王    时间: 2017-8-7 09:54
感谢分享 有隔多行变色的就更好了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3