レポートで複数レコードを横一行に表示させる方法

通常、詳細セクションは次のレコードに移るときに行を換えてしまいますが、MoveLayout プロパティを False に設定することで同じ行に重ね打ちします。さらに、コントロールの Left プロパティを設定すると印字する左右の位置を設定できますので、この2つを使うと複数レコードを横一行に印字できます。

下の例は、dataというフィールドがあるテーブルの複数レコードを一行に印字する例です。実際には、右いっぱいになったら改行するとか、別のフィールドでグループ化して改行するとかを考慮する必要がありますがこれは簡単にできるでしょう。

1
2
3
4
5
6
7
8
9
10
11
12
Option Compare Database
Option Explicit
Dim i As Integer
 
Private Sub 詳細_format(Cancel As Integer, PrintCount As Integer)
data.Left = (i + 2) * 567
MoveLayout = False
End Sub
 
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
i = i + 1
End Sub