0

背景信息
我收到了一个使用 MS-Access 2007 制作的“工具”,并要求添加一些东西......该工具基本上是查询数据库的选项集合。在标题为CreatedReport的表单上,有一个列表框绑定到一个名为 analyze 的表,该表包含来自运行的查询/查询的所有结果数据。该工具的原始创建者将列宽设置为特定值,但随着可能结果的新集合,这些宽度相差甚远。

期望的结果
我想要达到的最终结果当然是让列的宽度与列中的信息正确。只要实现了这一点,我真的不在乎我必须走哪条路线才能到达那里。

问题:
如何使 MS-Access 2007 中列表框中的列的大小适合每次使用?是否有我还没有偶然发现的自动调整大小功能,或者我是否需要对每个组的列宽集进行硬编码?这不会太难做到,因为只有大约 4 或 5 个不同的组,但如果可能的话,我希望这个过程是自动的。

4

4 回答 4

2

另一种方法是在子表单数据表视图中返回结果,然后用户可以调整列宽也可以自动设置宽度,使用如下代码:

示例 本示例在打开的客户窗体的数据表视图中生效。它将列设置为适合可见文本的大小。

Forms![Customers]![Address].ColumnWidth = -2

您可以将此代码放入子表单的当前事件中。

于 2009-07-11T06:29:17.240 回答
1

我认为罗伯特哈维的回答实际上并没有回应你的问题。

你需要做的是:

  1. 计算每列中值的最大长度,

  1. 根据使用的字体计算出列的宽度。

请注意,如果值超过某个阈值,您实际上可能不想将其设置为最大宽度。

我不知道要做第二个任务,但我怀疑 Stephen Lebans 已经完成了这项工作。你可能想在他的网站上搜索它。

于 2009-07-11T01:38:56.920 回答
0

上次我检查时,您仍然必须为此编写代码。

您最好的选择是使用某人已经编写的调整大小。这是一个很好的。它很旧,但它应该仍然有效:

http://www.jamiessoftware.tk/resizeform/rf_jump.html

于 2009-07-10T16:28:34.937 回答
0

这是一个快速的解决方案,当您想要设置不同宽度的列表视图列时应该会有所帮助,并且您事先知道所需的宽度(例如,您知道 X 列将始终是 2 个字符的状态缩写,而 Y 列将始终是城市名称)。

只需将所有宽度作为单个半冒号分隔的字符串提供。将每个宽度编码为数字和单位,例如“in”或“cm”。这对我来说效果很好:Me.lsvPayHist.ColumnWidths = "1.0 in;0.8 in;1.0 in;1.0 in;2.0 in"

于 2016-06-02T19:18:40.610 回答