如何调整访问表单的大小以适应屏幕

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 现在有一个深灰色主题,它给我一个深色背景并解决了我的问题。