Я настраиваю базу данных и настроил некоторый код VBA, чтобы изменить размер списка в отчете на основе количества записей в списке, чтобы при печати окно всегда имело правильный размер. Проблема, с которой я столкнулся, заключается в том, что изменение размера отлично работает на моем компьютере, однако, когда я запускал код на другом компьютере, последняя запись была обрезана списком.
В попытке выяснить, странно ли ведет себя какая-либо машина, я запустил код на третьей машине, чтобы посмотреть, что произойдет, и последняя запись не была обрезана, но находилась в несколько ином положении, чем на исходной машине, поэтому я было 3 разных высоты для списка. Я проверил значения переменных в коде VBA на обеих первых двух машинах, и вычисления идентичны. Я проверил, что шрифт такой же, размер шрифта тот же, а отступы одинаковые.
Dim RecordCount as Integer
Dim FontSize as Integer
Dim Padding as Integer
Dim RowHeight as Integer
Dim lstIssues as Listbox
Dim Issues as Report
Set Issues = [Reports]![Issues]
Set lstIssues = Issues.lstIssues
RecordCount = lstIssues.ListCount
FontSize = lstIssues.FontSize
Padding = lstIssues.TopPadding + lstIssues.BottomPadding
RowHeight = 20 * FontSize + Padding
lstIssues.Height = RowHeight * RecordCount
On Error Resume Next
DoCmd.RunCommand acCmdPrint
On Error GoTo 0
Размер шрифта в моей базе данных составляет 11, а верхний и нижний отступы - 0,053 см или 30 твипов каждый. Таким образом, RowHeight должно быть 280. Количество записей в моей таблице равно 24, поэтому общая высота списка должна быть 6720.