You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MS Access窗体中的列表框控件设置条件格式

能否在MS Access窗体的列表框控件上应用条件格式?

问题场景

当前窗体运行效果:
窗体运行效果截图
需要设置格式的控件位于窗体最左侧,是通过SQL查询从两张关联表提取数据的列表框,绑定的SQL语句如下:

SELECT 
T_SALARIE_EMPLOI.SALARIE_EMPLOI_id, 
T_SALARIE_EMPLOI.SALARIE_EMPLOI_salarie_nni, 
T_SALARIE.SALARIE_nom, 
T_SALARIE.SALARIE_prenom, 
T_SALARIE_EMPLOI.SALARIE_EMPLOI_date_fin_emploi_actuel 
FROM 
T_EMPLOI INNER JOIN (T_SALARIE INNER JOIN T_SALARIE_EMPLOI ON T_SALARIE.SALARIE_NNI = T_SALARIE_EMPLOI.SALARIE_EMPLOI_salarie_nni) ON T_EMPLOI.EMPLOI_identifiant = T_SALARIE_EMPLOI.SALARIE_EMPLOI_emploi_identifiant WHERE (((T_SALARIE_EMPLOI.SALARIE_EMPLOI_statut_id)=2) And ((T_SALARIE_EMPLOI.SALARIE_EMPLOI_emploi_identifiant)=Forms!F_Vue_Emploi.Form!EMPLOI_identifiant)); 

窗体设计视图:
设计视图截图
遇到的问题:选中文本框控件时可以看到条件格式设置按钮,但选中列表框后没有该入口。
目标效果:当列表框第一列(ID列)值为0时,对应整行设置为指定颜色(例如红色)。

结论

MS Access 原生列表框控件没有内置条件格式功能,找不到设置入口是控件本身的功能限制,不是操作错误。

实现方案

要实现逐行按条件标色的需求,推荐使用以下方案:

  • 最优方案:用「数据表视图/连续窗体子窗体」替代列表框
    这是Access开发中最通用、维护成本最低的实现方式:
    1. 新建一个空白窗体,将窗体的默认视图属性设置为「数据表」或「连续窗体」
    2. 将上述SQL查询设为该新窗体的记录源,在窗体内放置对应字段的文本框,调整列宽、布局使其和原列表框显示效果一致
    3. 此时可以直接使用Access内置的条件格式功能:选中ID列对应的文本框,设置规则为「值等于0时,将整行所有控件的字体/背景色设为红色」
    4. 将做好的新窗体作为子窗体嵌入原主窗体,替换原有列表框控件即可
  • 不推荐方案:Windows API自定义绘制
    如果必须保留原生列表框,可以通过VBA调用Windows API拦截列表框的绘制事件,逐行判断值后自定义行颜色,但该方案需要编写大量底层代码,在不同Access版本、Windows主题下容易出现显示兼容问题,非特殊场景不建议使用。

内容的提问来源于stack exchange,提问作者Kais

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 22:45:50