2009-07-10 133 views
0

背景信息
有人递给我一个“工具”,这是使用MS-Access 2007年提出,并要求增加一些东西......这个工具基本上是用于查询数据库选项的集合。在标题为CreatedReport的表单上,有一个列表框,它绑定到一个名为analyse的表,它具有来自运行的查询/查询的所有结果数据。该工具的原始创建者将列宽设置为特定值,但使用新的可能结果集合,这些宽度非常遥远。如何使MS-Access2007中列表框的列宽自动调整为正确?

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

问:
我怎样才能在MS-Access 2007年在ListBox中的列适当地为每个使用的大小?是否有一个我尚未发现的自动调整大小的功能,还是需要为每个组硬编码一组列宽?这样做不会太难,因为只有大约4或5个不同的小组,但是如果可能的话,我希望过程是自动的。

回答

0

我上次检查时,仍然需要为此编写代码。

最好的办法是使用某人已经写过的调整大小。这是一个很好的例子。这是老了,但它仍然建议立即进行删除工作:

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

+0

该死,我只是自己硬编码,或尝试无论如何。我希望这个的另一个原因不在Access中...... – Bryan 2009-07-10 17:49:35

1

我不认为罗伯特·哈维的回答居然是响应你的问题。

需要做的是:

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

AND

  • 弄不清根据使用的字体,列应该有多宽。
  • 请注意,如果该值超过某个阈值,您可能不希望将其设置为最大宽度。

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

    2

    另一种方法是,以具有在子表格数据表视图返回的结果,则用户可以调整列宽也以自动设置宽度使用这样的代码:

    例 本例将有效开放式客户表格的数据表视图。它将列设置为适合可见文本的大小。

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

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

    0

    这是一个快速的解决方案,当你想要设置不同宽度的列表视图列,并且事先知道你想要的宽度(例如,你知道列X总是一个2个字符的国家缩写,Y列将永远是城市名称)。

    只需将所有宽度作为单个以冒号分隔的单个字符串提供即可。将每个宽度编码为一个数字和一个单位,例如'in'或'cm'。这对我很好:Me.lsvPayHist.ColumnWidths =“1.0英寸; 0.8英寸; 1.0英寸; 1.0英寸; 2.0英寸”