Неточности при использовании TextWidth () в VBA - PullRequest
0 голосов
/ 13 августа 2010

Я пытаюсь получить длину строки, чтобы отформатировать отчет с использованием VBA в Access 2000. Да, я знаю это старое, но это то, что меня просили сделать. Я хочу получить ширину строки при печати; именно то, что TextWidth () предназначен для возврата. Я обнаружил, что для строк длиной от 4 до 20 символов возвращаемое значение может варьироваться от правильной длины до правильной длины плюс около дюйма. Это слишком неточно для форматирования, которое я хочу сделать. Это распространено? Я не могу найти ссылку на это как на общую проблему, но я перебирал код снова и был уверен, что функция просто неточна, чем логическая проблема.

1 Ответ

1 голос
/ 13 августа 2010

Проверьте свойства отчета *1002* 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

Я все еще не уверен, как установить имя и размер шрифта отчета, но ничего не вижу в его свойствах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...