我有一个子窗体在困扰着我。主窗体包含按钮等。每次用户关闭/打开窗体时,列宽都会被重置为表格喜欢的任何内容。如果我直接打开表格,大小就是我想要的大小。如果我在子窗体中更改它,它不会被保存。(参见screendump)
我希望“相位”保持大约2厘米宽。我可以输入子窗体并编辑“宽度”,但这只适用于其他视图。
希望你能帮上忙埃米尔。
发布于 2018-02-17 03:23:01
我意识到这篇文章差不多有2年了,但我遇到了同样的问题,并偶然发现了这篇文章。
我在Windows 7旗舰版上运行MS Access 2013。我没有找到这里提供的适合我的解决方案,因此,在我开始使用VBA代码之前,我开始寻找适合我的解决方案。(顺便说一句,我很欣赏@Patrick_Honorez在他对原始帖子的评论中提供的链接,因为这将是我的备用解决方案。)
无论如何,以下是对我起作用的方法,我希望它也能对其他人起作用:
发布于 2020-04-29 19:23:16
我看到这个帖子已经很老了,OP肯定已经想出了解决这个问题的方法。我今天遇到了同样的问题,并在this link上找到了解决方案。对于任何其他有同样问题的人,在关闭和打开你的子窗体的事件中使用以下代码(我稍微修改了代码,因为上面提到的帖子中的原始代码只保存文本框的列宽,但我的窗体也有组合框,它的列宽没有保存),然后在窗体视图中打开主窗体,然后通过鼠标手动选择所需的宽度,输入列宽值或使用最佳匹配。保存表单并重新打开以检查结果。就这样。
Private Sub Form_Close()
Dim ctrl As Control
For Each ctrl In Me.Controls
If (ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox) Then
SaveSetting "propertiesDBS", Me.Name, ctrl.Name, ctrl.ColumnWidth
End If
Next
End Sub
Private Sub Form_Open(Cancel As Integer)
Dim ctrl As Control
Dim frm As Form
Dim w As Long
For Each ctrl In Me.Controls
If (ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox) Then
w = GetSetting("propertiesDBS", Me.Name, ctrl.Name, 0)
If w <> 0 Then ctrl.ColumnWidth = w
End If
Next
End Sub
发布于 2021-04-09 18:14:21
我知道这太晚了,而且很可能是大家最后一次阅读评论,但这在MS Access 2016中可以非常简单地完成-由像我这样的人完成,他在整个数据库方面只有4天的经验,并且没有编写自定义宏或VB脚本的经验(只使用MS Access原生的脚本)。
这就是我是如何做到的。
方案-拆分窗体(窗体+数据表)。
额外的建议:
在您的VBA脚本中,在每个必要的事件之后以及在主窗体(通常是最常使用的‘更新后’事件)中执行
前底线-修改要输出/打印的查询的格式。
)
冻结字段(可选-不确定这是有帮助还是有妨碍,但我这样做是出于我的目的)在列仍处于选中状态的情况下,再次右键单击其中一个突出显示的列,然后选择‘
Excel电子表格以所有的行高和列宽打开,这样我就可以完全轻松地读取每一个字段/记录,而无需额外的修改。
这也适用于级联组合框,导出只输出“向下钻取/过滤”数据表记录,格式不需要进一步修改。
希望这对某人有帮助,因为它救了我的命!:)
https://stackoverflow.com/questions/28896645
复制相似问题