【问题标题】:In Access 2007 datasheet view, how do I use VBA to programmatically access the column width and Best Fit function?在 Access 2007 数据表视图中,如何使用 VBA 以编程方式访问列宽和最佳拟合函数?
【发布时间】:2018-11-14 15:58:34
【问题描述】:

我使用 Access 2007 进行大量数据转换和规范化。我做了很多数据导入并动态创建了很多表和查询。许多生成的表和查询有几十列,调整列宽和激活“最佳拟合”功能(也称为自动调整或自动调整大小)非常耗时。

我想编写一些 VBA 来循环遍历列以根据我认为合适的方式设置它们。我在 Google 上进行了广泛搜索,但找不到任何关于我需要用来执行此操作的集合、属性和/或方法的信息。

如何使用 Access VBA 或宏以编程方式访问表和查询的数据表视图的以下元素?

  1. 读取列宽属性
  2. 设置列宽属性
  3. 激活“最佳拟合”功能

编辑:对此有任何接受者..?已经几个星期了,没有任何回应。一定有办法。当然,它可以通过对 Access GUI 控件的 Windows API 调用来完成,但如果可能的话,我想避免这种复杂性......

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    ColumnWidth属性和SizeToFit方法:

    1. ColumnWidth = Me!YourControl.ColumnWidth
    2. Me!YourControl.ColumnWidth = ColumnWidth ' Integer value.
    3. Me!YourControl.SizeToFit

    对于表和查询:

    1. CurrentDb.TableDefs("Table1").Fields(n).Properties("ColumnWidth").Value = ColumnWidth

    2. 据我所知不可能

    【讨论】:

    • 当 OP 提醒他想要“访问表和查询的...数据表视图”时,我删除了我的类似答案,即不是表单,只是打开表和查询。
    • @wazz:哦,谢谢,错过了那个微妙的细节。我已经编辑了答案。
    • 好的,谢谢。这是针对表和查询的纯数据表视图,与报表或表单无关。
    【解决方案2】:

    这对我来说可以调整显示为数据表的子表单的所有列的大小

       Private Sub Form_Load()
            For Each oControl In Me.Detail.Controls
             If oControl.ControlType = 109 Then
               oControl.ColumnWidth = -2
             End If
           Next oControl
        End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多