提问人:paulusg62 提问时间:11/1/2023 更新时间:11/2/2023 访问量:51
嗨,我有一个 ms 访问报告。我想编写 vba 代码以仅为前三条记录提供不同的颜色
HI there, I have an ms access report. I want to write vba code to give a different color to only the first three records
问:
我有一个显示多条记录的 ms 访问报告。 我想以不同的背景颜色显示前三条记录,我想编写 vba-code 来实现这一点。有谁知道如何做到这一点? 任何帮助将不胜感激,谢谢。
我尝试在细节事件中编码,但随后整个部分以另一种颜色显示。
答:
1赞
Shahram Alemzadeh
11/2/2023
#1
这在打印预览中有效:
SUB DETAIL_FORMAT
IF (condition) THEN
DETAIL.BACKCOLOR = ...
ELSE
DETAIL.BACKCOLOR = ...
END IF
END SUB
这适用于报告视图:
SUB DETAIL_PAINT
IF (condition) THEN
DETAIL.BACKCOLOR = ...
ELSE
DETAIL.BACKCOLOR = ...
END IF
END SUB
评论
0赞
paulusg62
11/6/2023
嗨,确实,这有效。我花了一段时间才弄清楚为什么格式事件没有做任何事情,现在我意识到它应该是绘画事件。谢谢你的帮助。
0赞
June7
11/7/2023
应该在“详细信息”部分“格式”、“打印”或“绘制”中工作。
1赞
June7
11/2/2023
#2
试试这个:
将名为 tbxCnt 的文本框放在“详细信息”部分,其中 ControlSource 为 =1,并将 RunningSum 设置为“OverAll”(可以设置为不可见)。代码选项:
每个文本框的条件格式规则
Expression is: [tbxCnt]<4
VBA 可以测试 tbxCnt 的值,以使用以下命令设置详细信息部分的背景颜色:
或If Me.tbxCnt < 4 Then Me.Detail.Backcolor = vbYellow Else: Me.Detail.Backcolor = vbWhite
Me.Detail.Backcolor = IIf(Me.tbxCnt < 4, vbYellow, vbWhite)
确保为 NoColor 设置了 AlternateBackColor。
评论
0赞
paulusg62
11/6/2023
嗨,这很好用,谢谢!
0赞
June7
11/7/2023
如果答案解决了问题,请标记为已接受。
评论