不同屏幕分辨率下的 MS Access 表单

问题描述 投票:0回答:1

我在 MS Access 上创建了一个表单。我的屏幕分辨率是 1920 X 1080。表格适合屏幕,没有任何问题。当其他人在计算机上使用该表单时,他们必须向下滚动才能查看整个表单。我怀疑他们的屏幕分辨率较低,这就是原因。但事实上,他们的分辨率设置为3840 x 2160(这也是Windows“推荐”的分辨率)。 MS Access 已最大化至全屏尺寸。我不明白为什么他们不能查看整个表格。随着分辨率的提高,我预计表单上会有更多的空白空间。谁能解释一下并提供任何建议吗?

forms ms-access screen-resolution
1个回答
0
投票

我不能明确地说,但根据我的经验,似乎 Access 在每次加载表单时都使用一些非常糟糕的逻辑来重新计算对象位置和尺寸。

首先,设计者强制用户输入以英寸为单位的测量值。精度可以在百万分之一英寸之内,但如果访问不喜欢输入的数字,它可能会通过看似随机的值(例如 0.0007 英寸)自动纠正。

其次,这些值不是以英寸为单位存储,也不是以像素为单位。它可能是 twips,这与计算出的计算机屏幕每英寸点数有关。

虽然 Access 在修订跟踪方面很糟糕,但我的项目有一个功能,可以为此目的将所有表单(和其他对象)导出到纯文本文件。结果看起来非常类似于普通的非 Access Visual Basic 项目中的表单定义代码。作为实验,我刚刚创建了一个 1"x0.25" 的标签。它呈现为 97x25 像素。导出的表单文件的尺寸记录为 1140x360。高度

看起来就像单位之间可能存在简单的相关性(一个像素 = 0.01 英寸),但宽度将这个想法抛到了窗外(一个像素 = 0.0103 英寸)。 (我的经验是 Visual Basic 的 twip-width 和 twip-height 确实往往彼此不同。)

我的假设是,当以英寸为单位输入测量值时,Access 会将其转换为缇作为内部值,然后在设计器中将其转换回英寸以供用户查看,因为缇必须是整数值。当稍后重新打开 Access 窗体时,存储的缇值将转换为英寸(和像素),然后呈现对象。缇到英寸或像素的确切转换率因环境而异,因此在一台计算机上保存表单然后在另一台计算机上查看它可能会使用不同的缇大小定义。

以下是支持我的理论的一些值得注意的经验:

    我可能想创建一个与我的同事在他的计算机上创建的文本框大小完全相同的文本框。当我尝试输入与他相同的尺寸时,Access 会自动将值移动百万分之几英寸。
  1. 如果我打开同事上次编辑的表单,保存一些代码更改但进行零表单设计更改,将其导出到文本文件,然后将我的导出与同事的导出进行比较,则所有存储的缇测量值通常都是减少 2-5 个刻度。
  2. 昨晚我在工作计算机上完成了新报告表的创建。今天早上我远程连接到我的工作计算机。我的家用计算机的分辨率较低,当我重新打开昨晚完成的报告时,所有对象都变得稍宽,并且我收到了“页面太宽”错误通知。
1920x1080 和 3840x2160 屏幕分辨率具有相同的宽高比,但一定存在一些奇怪的数学原理,使得 Access 表单在这两个屏幕上的缩放比例不同。我怀疑有多种因素,包括特殊效果,例如带有圆角或超厚边框的窗口。底线:我们不能指望在一台计算机上设计的 Access 表单在另一台计算机上看起来相同。

我想说,对于 Access 表单,您无能为力,但对于报告,明智的做法是让您的右边距比您想要的小一点,然后瞄准不填满整个宽度的打印区域,以便有增长的空间。当您没有主动进行任何更改时,还要避免在设计器视图中打开表单/报告并保存,因为 Access 喜欢增加这些英寸。

© www.soinside.com 2019 - 2024. All rights reserved.