如何调整访问表单的大小以适应屏幕
How to resize an access form to fit the screen
所以我最近从 Access 2003 升级到 Access 2016,当然,我讨厌不得不处理 2016 年无法更改的令人讨厌的白色背景。最大化 forms/reports 不是我们经常会在任何给定时间使用多个 forms/reports,并且需要能够查看它们并在它们之间进行更改以完成我们的工作。
我想出了一个我认为非常聪明的解决方案,我创建了一个空的背景表单,只是它有一个深灰色的背景,让您的眼睛看起来更舒服。当您打开新的表单或报表时(打开事件),它会将该表单放在堆栈的顶部,以便您拥有打开的表单和报表的层次结构。
如果您单击不在顶部的表单或报表(在激活事件时),它会被移回堆栈顶部。然后,如果您不小心单击了背景表单,它不会覆盖您一直在处理的所有内容,而是遍历整个堆栈,从底部开始并按顺序将焦点设置到每个表单或报告。以下是我如何为感兴趣的人做的:
Private Sub Form_GotFocus()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT ID, FormName, FrmRpt FROM FormStack ORDER BY ID", dbOpenSnapshot)
If rst.EOF Then
DoCmd.OpenForm "frmMenu"
Else
While Not rst.EOF
If rst.Fields("FrmRpt") = "Form" Then
Forms(rst.Fields("FormName")).SetFocus
Else
DoCmd.SelectObject acReport, rst.Fields("FormName")
End If
rst.MoveNext
Wend
End If
rst.Close
Set rst = Nothing
End Sub
一切正常,我只需要确保将代码添加到我创建的任何新表单或报告中。
所以这是我的难题,这个背景表格需要足够大以填满任何使用它的人的屏幕,否则,您会在边缘看到白色。因为每个人都有不同的显示器,所以我决定把表格做得非常大 (21"x13"),这样它就能填满任何使用它的人的屏幕。我将“自动居中”、“自动调整大小”和“适合屏幕”全部设置为“是”。
我没有边框、记录选择器、导航按钮、潜水线、滚动条、控制框、关闭按钮或最小-最大按钮,而且它也是不可移动的。 Detail 部分可以增长也可以收缩。所以现在一切正常,除了因为这个表单比任何人的 Access window 都大,Access window 本身现在有滚动条,这样你就可以四处移动以查看整个背景表单它单调的深灰色荣耀。
要是能把Accesswindow完美填满就好了,这样就不会出现这些滚动条迷惑用户了。
有谁知道如何解决这个问题?
我会
- 最大化背景窗体以覆盖 Access 背景。
- 将所有 Forms+Reports 设置为
Popup = Yes
,那么它们 将不会 最大化,即使已打开最大化的表单也是如此。
- 教育用户,他们现在可以更自由地移动 windows,并且他们应该避免覆盖菜单栏。
如果他们中的一些人有双显示器设置,他们也可以将一些 windows 移动到第二台显示器(在 Access 主 window 之外)。这可能非常有用。
- (最重要的是)取消所有形式的代码。
转到访问设置=> document window options
和 select tabbed documents
。任何你想要有特定大小的表格,你可以设置为 "popup".
您仍然可以使用具有自定义背景颜色、大小 1cmx1cm、无滚动条、无导航栏、无记录选择器、边框样式的自定义表单 none
。放置一个矩形并将 Anchoring
属性 设置为“strech down and across
”,这将填满整个访问应用程序,用户将无法关闭它。
设置页面
示例结果
迟到的答案,但我找到的最佳解决方案是 Peter's Software 的 Shrinker-Stretcher。它循环遍历所有控件并调整窗体(及其子窗体)上所有内容的大小以适应应用程序 window。开发者许可是合理的。
嗯,这不会调整表单大小以适应屏幕,但 Access 现在有一个深灰色主题,它给我一个深色背景并解决了我的问题。
所以我最近从 Access 2003 升级到 Access 2016,当然,我讨厌不得不处理 2016 年无法更改的令人讨厌的白色背景。最大化 forms/reports 不是我们经常会在任何给定时间使用多个 forms/reports,并且需要能够查看它们并在它们之间进行更改以完成我们的工作。
我想出了一个我认为非常聪明的解决方案,我创建了一个空的背景表单,只是它有一个深灰色的背景,让您的眼睛看起来更舒服。当您打开新的表单或报表时(打开事件),它会将该表单放在堆栈的顶部,以便您拥有打开的表单和报表的层次结构。
如果您单击不在顶部的表单或报表(在激活事件时),它会被移回堆栈顶部。然后,如果您不小心单击了背景表单,它不会覆盖您一直在处理的所有内容,而是遍历整个堆栈,从底部开始并按顺序将焦点设置到每个表单或报告。以下是我如何为感兴趣的人做的:
Private Sub Form_GotFocus()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT ID, FormName, FrmRpt FROM FormStack ORDER BY ID", dbOpenSnapshot)
If rst.EOF Then
DoCmd.OpenForm "frmMenu"
Else
While Not rst.EOF
If rst.Fields("FrmRpt") = "Form" Then
Forms(rst.Fields("FormName")).SetFocus
Else
DoCmd.SelectObject acReport, rst.Fields("FormName")
End If
rst.MoveNext
Wend
End If
rst.Close
Set rst = Nothing
End Sub
一切正常,我只需要确保将代码添加到我创建的任何新表单或报告中。
所以这是我的难题,这个背景表格需要足够大以填满任何使用它的人的屏幕,否则,您会在边缘看到白色。因为每个人都有不同的显示器,所以我决定把表格做得非常大 (21"x13"),这样它就能填满任何使用它的人的屏幕。我将“自动居中”、“自动调整大小”和“适合屏幕”全部设置为“是”。
我没有边框、记录选择器、导航按钮、潜水线、滚动条、控制框、关闭按钮或最小-最大按钮,而且它也是不可移动的。 Detail 部分可以增长也可以收缩。所以现在一切正常,除了因为这个表单比任何人的 Access window 都大,Access window 本身现在有滚动条,这样你就可以四处移动以查看整个背景表单它单调的深灰色荣耀。
要是能把Accesswindow完美填满就好了,这样就不会出现这些滚动条迷惑用户了。
有谁知道如何解决这个问题?
我会
- 最大化背景窗体以覆盖 Access 背景。
- 将所有 Forms+Reports 设置为
Popup = Yes
,那么它们 将不会 最大化,即使已打开最大化的表单也是如此。 - 教育用户,他们现在可以更自由地移动 windows,并且他们应该避免覆盖菜单栏。
如果他们中的一些人有双显示器设置,他们也可以将一些 windows 移动到第二台显示器(在 Access 主 window 之外)。这可能非常有用。 - (最重要的是)取消所有形式的代码。
转到访问设置=> document window options
和 select tabbed documents
。任何你想要有特定大小的表格,你可以设置为 "popup".
您仍然可以使用具有自定义背景颜色、大小 1cmx1cm、无滚动条、无导航栏、无记录选择器、边框样式的自定义表单 none
。放置一个矩形并将 Anchoring
属性 设置为“strech down and across
”,这将填满整个访问应用程序,用户将无法关闭它。
设置页面
示例结果
迟到的答案,但我找到的最佳解决方案是 Peter's Software 的 Shrinker-Stretcher。它循环遍历所有控件并调整窗体(及其子窗体)上所有内容的大小以适应应用程序 window。开发者许可是合理的。
嗯,这不会调整表单大小以适应屏幕,但 Access 现在有一个深灰色主题,它给我一个深色背景并解决了我的问题。