【发布时间】:2014-05-27 01:30:45
【问题描述】:
我的数据库中有一个表单,它使用多个表单来生成 PDF 文档。我遇到的问题是,每次用户移动或复制数据库时,字体的大小都不再正确。
设置为 Arial Narrow、Bold、16 号字体。为了“解决”这个问题,我只是以任何方式调整字体,所以如果我只是将字体设置回 Arial Narrow,即使字体大小没有改变,字体也会恢复到正确的大小。如果我关闭粗体然后重新打开,结果相同,即使在工具栏中它永远不会从 16 字体更改,字体也会恢复到正确的大小。
显然,对于包含 7 个子表单的表单,此解决方案是不合理的,因为我必须每隔几天执行一次。我知道我可以使用 vba 以编程方式解决这个问题,但是我觉得一开始就不应该发生这种情况。
如果以前在某个地方已经回答过这个问题,我深表歉意,这个问题很难解释,更不用说在谷歌中搜索了。
更新:
以下是我的代码,我的代码在加载时发生,它修复了主表单,然后您必须关闭表单并再次打开它才能影响子表单。我认为它们是第一次得到纠正,但是在重新加载表单之前有一段时间没有调整。
我已尝试刷新并重新绘制子表单,因为它们一旦更新,但我似乎无法找到一种方法来自动实现这一点。此外,不仅仅是在移动数据库时,如果您关闭并打开数据库,表单的字体会再次变得过大。
Public Function FixFontSize(frm As Form)
On Error Resume Next
Dim ctl As Control
For Each ctl In frm.Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox, acLabel, acCommandButton
ctl.FormName = "tahoma"
ctl.FontName = "arial narrow"
Case acSubform
Call FixFontSize(ctl.Name)
End Select
Next ctl
End Function
【问题讨论】:
标签: ms-access