Ms access 在Access 2007数据表视图中,如何使用VBA以编程方式访问列宽和最佳拟合函数?

Ms access 在Access 2007数据表视图中,如何使用VBA以编程方式访问列宽和最佳拟合函数?,ms-access,vba,Ms Access,Vba,我使用Access 2007进行大量数据转换和规范化。我做了大量的数据导入,并动态创建了大量的表和查询。许多结果表和查询都有几十列,调整列宽和激活最佳拟合函数(也称为autofit或autosize)非常耗时 我想用一些VBA在列中循环,以设置我认为合适的列。我在Google上搜索了很多,但是我找不到任何关于我需要使用的集合、属性和/或方法的信息 如何使用Access VBA或宏以编程方式访问表和查询的数据表视图的以下元素 读取列宽属性 设置列宽属性 激活最佳拟合功能 编辑:这方面有人吗。。?几

我使用Access 2007进行大量数据转换和规范化。我做了大量的数据导入,并动态创建了大量的表和查询。许多结果表和查询都有几十列,调整列宽和激活最佳拟合函数(也称为autofit或autosize)非常耗时

我想用一些VBA在列中循环,以设置我认为合适的列。我在Google上搜索了很多,但是我找不到任何关于我需要使用的集合、属性和/或方法的信息

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

读取列宽属性 设置列宽属性 激活最佳拟合功能 编辑:这方面有人吗。。?几周过去了,没有人回应。一定是一种方式。当然,这可以通过对Access GUI控件的Windows API调用来完成,但我希望尽可能避免这种复杂性…

这是ColumnWidth属性和SizeToFit方法:

柱宽=我!你的控件。列宽 我YourControl.ColumnWidth=ColumnWidth'整数值。 我YourControl.SizeToFit 对于表和查询:

CurrentDb.TableDefsTable1.Fieldsn.PropertiesColumnWidth.Value=ColumnWidth

据我所知,不可能


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

   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

当OP提醒我说他想访问表和查询的数据表视图时,我删除了我的类似答案,也就是说,不是表单,只是打开表和查询。@wazz:噢,谢谢,错过了那个微妙的细节。我已经编辑了答案。是的,谢谢。这是用于表和查询的纯数据表视图,与报表或表单无关。