设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 数据表隔行显示不同颜色的问题请教

[复制链接]
跳转到指定楼层
1#
发表于 2011-12-9 11:52:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我想让数据表隔行显示不同颜色,参照论坛上的例子,我也做出这种效果,但现在出现的情况是,当我删除了记录,或者是调整了排序方式,数据表隔行显示的效果就出错了。所以我想问,像这种情况如何处理呢。


还有,如图所示,数据表下面导航栏的记录号是按什么排序的呢,它的代码是多少呢,我想让数据表通过它来隔行显示不同的背景颜色,以解决记录被删除或排序引起的同色情况,可行吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
11#
 楼主| 发表于 2012-1-31 22:52:11 | 只看该作者
我想再问问用过2007版本的朋友们,对于一二十万条的记录,在数据表隔行显示不同颜色中,其效果如何,在拖动滚动条或翻页时屏幕闪不闪呢?
10#
 楼主| 发表于 2011-12-22 22:45:15 | 只看该作者
可是我们公司是指定了用2003版本,如果用2007版本,我担心在与外单位交流时容易因版本问题引起冲突。
9#
发表于 2011-12-15 15:32:58 | 只看该作者
t小宝 发表于 2011-12-15 12:03
2003版实现数据表隔行变色很麻烦而且效果很不好,能不用尽量不用
2007以上的版本已经内置数据表隔行变色

看来,2003的还是少用好。

点击这里给我发消息

8#
发表于 2011-12-15 12:03:44 | 只看该作者
2003版实现数据表隔行变色很麻烦而且效果很不好,能不用尽量不用
2007以上的版本已经内置数据表隔行变色
7#
发表于 2011-12-14 19:26:21 | 只看该作者
ycxchen 发表于 2011-12-13 09:56
roych 在4楼说的例子的代码是哪个例子的的代码呀?

是对应3L的例子的。
6#
发表于 2011-12-13 09:56:09 | 只看该作者
roych 在4楼说的例子的代码是哪个例子的的代码呀?
5#
发表于 2011-12-12 09:35:19 | 只看该作者
同样关注。
4#
发表于 2011-12-11 12:33:59 | 只看该作者
本帖最后由 roych 于 2011-12-11 15:07 编辑

{:soso_e112:}里面还是用了条件格式,只是用代码实现而已。晚些再看看。
先说说该范例的实现原理:
1、根据自动编号字段,计算当前记录的条数。也就是里面的Rank控件:
=DCount("*","表1","货物ID<='" & [货物ID] & "'")
货物ID为自动编号,自增长类型,因此依次返回1、2、3、4……
2、根据记录所属条数奇偶性,设置条件格式,即里面的当前事件和加载事件代码。代码比较多,这里注释当前事件部分。有需要的话再回帖。

  1. Private Sub Form_Current()
  2. '如出错则跳过,继续执行
  3. On Error Resume Next   
  4. '定义当前记录数(即记录导航器中的数值)
  5.     Dim cuid As Long
  6.     cuid = Me.CurrentRecord
  7. '定义条件格式
  8.     Dim objfrc As FormatCondition
  9.     Dim ctl As Control
  10. '对所有控件执行条件格式。
  11.     For Each ctl In Me.Form.Controls
  12. '更改条件格式1(注意,VB里绝大多数集合都是从0开始的)
  13. '条件格式类型为:表达式。Rank控件为偶数,且并非当前记录时为浅绿色(详见加载事件)
  14.         Set objfrc = ctl.FormatConditions(0).Modify(acExpression, , "[Rank] Mod 2 = 0 And [Rank] <>" & cuid & "")
  15. '这个就不解释了,类似于上面。需要注意的是,这两个条件格式顺序不能乱,否则格式会出错。
  16.         Set objfrc = ctl.FormatConditions(1).Modify(acExpression, , "[Rank] = " & cuid & "")
  17.     Next
  18. End Sub
复制代码
因此,如果需要实现删除前后都能实现条件格式效果的话,请在确认删除后事件中对Rank重新计算:

  1. Private Sub Form_AfterDelConfirm(Status As Integer)
  2. Me.Rank.Requery
  3. End Sub
复制代码
3#
 楼主| 发表于 2011-12-10 16:58:19 | 只看该作者
roych 发表于 2011-12-9 22:53
虽然那个例子没看过,不过按我的思路,应该是用Mod函数来判断记录条数来设置的吧?其实也可以单独设 ...

t小宝的方法主要适用于连续窗体,对于数据表似乎不起作用。

yori2007采用的条件格式主要适用于记录较少的数据表,如果记录庞大,数据表采用条件格式,会非常闪的。

我参考的例子见附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-22 21:21 , Processed in 0.094758 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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