如何使MS-Access2007中列表框的列宽自动正确调整大小?

如何使MS-Access2007中列表框的列宽自动正确调整大小?,ms-access,listbox,ms-access-2007,Ms Access,Listbox,Ms Access 2007,背景信息: 我收到一个“工具”,它是用MS Access 2007制作的,并要求我添加一些东西。。。该工具基本上是查询数据库的一组选项。在名为CreatedReport的表单上,有一个列表框绑定到名为Analysized的表,该表包含运行的查询的所有结果数据。该工具的原始创建者将列宽设置为特定的值,但对于新的可能结果集合,这些列宽相差甚远 期望的结果: 当然,我想要实现的最终结果是,使列的宽度与列中信息的宽度相同。只要实现了这一目标,我真的不在乎我必须走哪条路才能到达那里 问题: 如何使MS A

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

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

问题:

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

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

你最好的选择是使用一个已经有人写过的重设器。这是一个好的。虽然旧了,但应该还能用:


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

你最好的选择是使用一个已经有人写过的重设器。这是一个好的。虽然旧了,但应该还能用:


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

您需要做的是:

  • 计算每列中值的最大长度
  • 根据使用的字体,计算出列的宽度
  • 请注意,如果该值超过某个阈值,您可能实际上不希望将其设置为最大宽度


    我不知道第二步该怎么做,但我怀疑斯蒂芬·勒班已经完成了这方面的工作。你可能想在他的网站上搜索它。

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

    您需要做的是:

  • 计算每列中值的最大长度
  • 根据使用的字体,计算出列的宽度
  • 请注意,如果该值超过某个阈值,您可能实际上不希望将其设置为最大宽度


    我不知道第二步该怎么做,但我怀疑斯蒂芬·勒班已经完成了这方面的工作。您可能想在他的网站上搜索它。

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

    范例 此示例在open Customers窗体的数据表视图中生效。它将列设置为适合可见文本的大小

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

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

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

    范例 此示例在open Customers窗体的数据表视图中生效。它将列设置为适合可见文本的大小

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

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

    这是一个快速解决方案,当您想要设置不同宽度的listview列,并且您预先知道所需的宽度时,它应该会有所帮助(例如,您知道X列将始终是两个字符的州缩写,Y列将始终是城市名称)


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

    这是一个快速解决方案,当您想要设置不同宽度的listview列时,应该会有所帮助,并且您可以提前知道所需的宽度(例如,您知道X列始终是两个字符的州缩写,Y列始终是城市名称)


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

    Darn,我会自己硬编码,或者无论如何尝试硬编码。这是我希望它不在Access中的另一个原因……Darn,我会自己硬编码,或者无论如何尝试硬编码。这是我希望它不在Access中的另一个原因。。。。