【问题标题】:Display Access Report Listbox One Field into 3 Columns显示访问报告列表框一个字段分为 3 列
【发布时间】:2025-12-02 01:35:01
【问题描述】:

我目前一直在尝试将包含大量值 (9) 的列表框从 9 个值长的一列格式化为包含 3 列的列表框,从而缩短列表框的长度。该信息仅用于在报告中显示。

我目前拥有的:

Field 1
[Entry 1]
[Entry 2]
[Entry 3]
[Entry 4]
[Entry 5]
[Entry 6]
[Entry 7]
[Entry 8]
[Entry 9]

我想要的,都还是同一个字段:

[Entry 1]                     [Entry 2]                       [Entry 3]
[Entry 4]                     [Entry 5]                       [Entry 6]
[Entry 7]                     [Entry 8]                       [Entry 9]

我尝试了一些技术来实现这一点,但没有一个效果很好。我只是希望能够在报表上显示客户姓名,而列表框不会超长。

任何帮助将不胜感激

谢谢, 凯夫

【问题讨论】:

  • 那么这个客户列表不是报表的主要数据吗?如果是,那么您是否查看了柱状设置?

标签: vba ms-access ms-access-2013 ms-access-2016


【解决方案1】:

这仅适用于 9 条记录。需要一个唯一的标识符字段。假设 ID 是从 1 到 9 连续的。

TRANSFORM Max(Table5.Field1) AS MaxOfField1
SELECT Switch([ID]<4,"a",[ID]<7,"b",[ID]<10,"c") AS Row
FROM Table5
GROUP BY Switch([ID]<4,"a",[ID]<7,"b",[ID]<10,"c")
PIVOT Choose([ID] Mod 3+1,3,1,2);

如果您想允许无限的记录,预计将需要 VBA。查询调用的函数或将记录写入临时表,很可能是后者。

【讨论】:

  • 天哪,非常感谢!我可能会努力让它可以处理无限的记录,但这肯定会在短期内解决我的问题。再次感谢!
  • 我真的试图找到无限记录的动态方法,但看不到仅查询的方法。我会使用 VBA 和临时表(表是永久的,但记录是临时的)。
最近更新 更多