为了便于阅读,我想在每个报告页上每10行增加一些额外的空间。
我尝试过在Detail_Format事件例程中计算行数和更改细节部分的高度,但这似乎没有起到任何作用。
然后,我尝试使用一个很高的虚拟字段,其中只有一个空间字符,每10行就显示一次(以及适当的CanShrink设置),额外的空间是可见的,但不在正确的行上。仪表显示事件例程计算正确,但效果似乎不同步。
但必须有一个直截了当的方法,对吧?有什么建议吗?
发布于 2020-03-01 18:18:25
根据UnhandledException回答中的信息,我就是这样做的,这实际上很容易做到。
步骤1:在细节线上添加一个所需高度的文本框。我认为必须为文本框和细节行设置CanShrink。

步骤2:将这些添加到事件处理中:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
LineFormatEvents = LineFormatEvents + 1
Me.txtExtraSpace.Visible = (LineFormatEvents Mod 10 = 0)
End Sub
Private Sub PageHeaderSection_Paint()
LineFormatEvents = 0
End Sub请注意,我使用的是Access 2016;我不知道返回多少个版本才能工作。
发布于 2019-11-19 07:06:15
据我所知,这样的结果只有在印刷版面上才有可能。
我就是这么做的:
该示例对每个页面的打印行进行计数,并使用Detail节的Detail事件通过设置报表的PrintSection和NextRecord属性来添加空行。
为了确保重新设置每个页面的计数器,并防止页面的第一行为空白,使用了PageHeaderSection的PageHeaderSection事件。
使用常量INSERT_BLANK_ROW_EVERY设置应插入空行的时间。
Const INSERT_BLANK_ROW_EVERY As Integer = 10
Dim insertBlankRowNext As Integer
Dim pageLineCount As Integer
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
If PrintCount = 1 Then pageLineCount = pageLineCount + 1
Me.PrintSection = Not insertBlankRowNext
Me.NextRecord = Not insertBlankRowNext
insertBlankRowNext = (pageLineCount Mod INSERT_BLANK_ROW_EVERY = 0)
End Sub
Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer)
pageLineCount = 0
insertBlankRowNext = False
End Sub关于PrintCount参数,微软写道:
Microsoft每次计算当前部分的PrintCount属性设置时都会增加OnPrint属性。在打印下一节时,Access将PrintCount属性重置为0。
请参阅这里的详细信息:Report.PrintCount性质
发布于 2019-11-19 07:27:47
您也可以添加假的假记录是空白的。
假设您的报表是基于查询(例如Query1 ),而不是使用它作为报表的RecordSource,您可以使用它作为表(Make )的源,并创建一个包含您想要的信息但具有额外记录(行)以提高可读性的表。
在将Query1“转储”到table..you之后,将其加载到RecordSet ...you中,然后根据您的需要迭代记录,并根据您的需要进行.AddNew记录。
https://stackoverflow.com/questions/58926268
复制相似问题