【问题标题】:Font not reflecting proper font size字体未反映正确的字体大小
【发布时间】: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


    【解决方案1】:

    我想象的最优雅的解决方案是编写一个函数,循环遍历表单上的控件并使用FontSizeFontName 等属性并将它们设置为您想要的

    添加了一个循环表单控件的简单示例。

    Dim c As Control
    For Each c In Me.Controls
        If c.ControlType = acTextBox Or c.ControlType = acLabel Then
            c.FontSize = 16
        End If
    Next
    

    具有.Font 属性的acTextBoxacLabel 不止于此,但您应该能够根据需要对其进行自定义。

    还包括一个列出所有控件类型的 MSDN 链接。

    http://msdn.microsoft.com/en-us/library/office/aa224135%28v=office.11%29.aspx

    【讨论】:

    • 虽然我很欣赏这个答案,但我更希望了解为什么会发生这种情况。它只发生在这一特定形式上,其他形式不受此影响。
    • 另外,这不会导致所有非文本控件出现错误吗?
    • 我对为什么会发生的第一个猜测是字体可能在不同用户的计算机上不可用?你提到数据库被移动了。诊断其是否与用户打开有关的另一种解决方案/方法是让他们打开数据库前端的副本并查看原始更改是否有过。如果它不再与没有字体或类似东西的人打开它有关。但这只是猜测
    • 您可以使用IF 语句来过滤掉没有.Font... 属性的控件类型。我将添加适当的信息
    • 我已经创建了一个函数,可以在加载时执行此操作。关于测试看用户是否可以打开主前端。一旦它被创建和调整,它将允许任何人打开它并且它会正常工作,但是如果你复制前端然后将它粘贴到同一个文件夹中,当你打开复制的前端时它会恢复回到旧的超大字体。即使字体属性显示正确的类型和大小。这会发生在所有用户身上,包括我自己。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多