我有一个包含数据表的子表单。偶尔,我需要调整数据表布局(列顺序,宽度等)。在布局模式下,即使是设计模式,单击SAVE似乎也不会保留这些更改。
但是,某些情况下保存了更改,但我不清楚允许保存的机制是什么。
我的目的是冻结布局修改,允许我的用户在运行时使用布局,但不会在会话结束时提示他们保存。
保存这些布局更改的任何技巧?这真令人发狂!
不是:我没有在属性表中看到AllowDesignChanges属性。
答案 0 :(得分:1)
直接编辑子表单似乎对我有用,即不要从主表单进行更改,而是打开子表单本身并进行/保存更改。
这让我疯了。
答案 1 :(得分:0)
对于过渡期,我已经使用了一个单独的表,其中包含所有表属性名称(“AttrDisplay”,135列,不要问 - 继承这个东西),每个Filter有一个列(其中4个)。我使用一个简单的整数值设置属性顺序,隐藏/取消隐藏该表中的列。取决于用户选择的过滤器。
在子窗体Load上,我隐藏了所有列:
Dim ctl As Control
Dim rs2 As DAO.Recordset
Dim strSQL As String
For Each ctl In Me.Controls
ctl.ColumnHidden = True
Next ctl
然后我打开“AttrDisplay”表并逐步遍历每一列以设置顺序并取消隐藏特定于过滤器的列。同时自动调整列宽:
strSQL = "SELECT AttrDisplay.AttrNo, AttrDisplay.AttrName, AttrDisplay.Filter1, AttrDisplay.FIlter2, AttrDisplay.Filter3, AttrDisplay.Filter4 " & _
"FROM AttrDisplay " & _
"WHERE (((AttrDisplay.Filter1) > 0)) " & _
"ORDER BY AttrDisplay.Filter1;"
Set rs2 = db.OpenRecordset(strSQL, dbOpenDynaset)
Do While Not rs2.EOF
If rs2!Filter1 < 8000 Then 'Leave hidden > 8000
Forms![myForm]![mySubform].Form.Controls(rs2!AttrName).Properties("ColumnHidden") = False
Forms![myForm]![mySubform].Form.Controls(rs2!AttrName).Properties("ColumnOrder") = rs2!Filter1
Forms![myForm]![mySubform].Form.Controls(rs2!AttrName).Properties("ColumnWidth") = -2
End If
rs2.MoveNext
Loop
我根据所选过滤器修改此代码。使修改这个笨重的数据表显示非常可配置。选定的过滤器提供了截然不同的数据视图。
答案 2 :(得分:0)
我发现以下内容适合我:
您的子表单现在应该包含所有更改。