在VBA中使用TextWidth()的不准确

时间:2010-08-13 00:20:36

标签: ms-access vba

我正在尝试获取字符串的长度,以便在Access 2000中使用VBA格式化报表。是的,我知道这很旧,但这是我被要求做的事情。我希望在打印时获得字符串的宽度;究竟是什么TextWidth()意味着返回。我发现的是,对于4-20个字符的字符串,返回值的范围可以从正确的长度到正确的长度加上大约一英寸。这对于我希望的格式来说太不准确了。这是常见的吗?我找不到任何对此的引用作为一个常见问题,但我已经遍及代码并且我相当确定该函数只是比逻辑问题更不准确。

1 个答案:

答案 0 :(得分:1)

检查报告的FontName和FontSize属性。如果它们与您正在使用的领域不同,您将得到截然不同的结果。

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    MsgBox (Me.FontName & " ," & Me.FontSize)
    MsgBox (TextWidth("Test"))
    Me.FontName = Me.f2.FontName  'ariel
    Me.FontSize = Me.f2.FontSize  '8
    MsgBox (Me.FontName & " ," & Me.FontSize)
    MsgBox (TextWidth("Test"))
    Me.FontName = Me.f1.FontName  'ariel
    Me.FontSize = Me.f1.FontSize  '16
    MsgBox (Me.FontName & " ," & Me.FontSize)
    MsgBox (TextWidth("Test"))
End Sub

我仍然不确定如何设置报告的字体名称和大小,但我没有看到它的属性。