Access 2007列表框绑定5列查询后,文本框仅能显示前两列问题咨询
结合你已经做的排查(文本框绑定前两列正常,说明文本框本身没问题),大概率是列表框的属性配置漏了关键项,下面给你一步步定位问题的思路:
先检查列表框的
Column Count属性
这是最容易踩的坑!如果你的列表框Column Count值小于5,哪怕Row Source的查询返回5列,列表框也只会加载前N列,后面的Column(2)及以后自然取不到数据。打开列表框的属性窗口,切换到数据选项卡,把Column Count设为5(和查询的列数完全一致)。确认
Column Widths的设置是否正确
虽然把列宽设为0只是隐藏列,理论上Column集合还是能访问到数据,但如果宽度设置用了错误的分隔符(比如中文逗号,Access要求用英文分号),可能导致列加载异常。你可以临时把Column Widths设为1cm;1cm;1cm;1cm;1cm(让所有列都可见),运行窗体看看列表框能不能显示5列数据——如果列表框能显示,再调回需要的宽度就行。验证Row Source查询的有效性
直接打开你用的那个查询,运行它确认第2到4列确实有数据返回,且数据类型是文本框能正常显示的(比如不要是OLE对象这类特殊类型)。如果查询里这几列都是空值,那文本框自然显示为空,这时候要排查查询的数据源或字段表达式是否正确。最后确认文本框的引用语法
虽然前两列正常,但还是检查一下文本框的Control Source是不是准确,比如=[List Name].Column(2)——注意Access的列索引是从0开始的,第3列对应Column(2),别搞混了;另外确认列表框的名称拼写完全一致,有没有大小写或者空格的问题。
按照这个顺序排查,90%的情况都是Column Count没设对导致的,先优先检查这个属性!
内容的提问来源于stack exchange,提问作者N.J.

