我正在建立一个数据库,并且已经建立了一些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.053cm或30缇。因此RowHeight应该为280。我表中的记录计数为24,因此列表框的总高度应为6720。