2009/06/20

非連結レポート

Form1でフィルターとソートしてあるRecordSetを印刷する
として、Cloneをレポートで使用。詳細セクションに配置した
コントロール名とRecordSet.Field名は同一とする。

Dim rs As New ADODB.Recordset
Private Sub Report_Open(Cancel As Integer)
Set rs = Forms("Form1").RecordsetClone
rs.Filter = Forms("Form1").Recordset.Filter
rs.Sort = Forms("Form1").Recordset.Sort
End Sub
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
rs.MoveFirst ’印刷プレビューするなら先頭移動が必要
End Sub
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Dim Ctr As Control
For Each Ctr In Me.詳細.Controls
Ctr = rs(Ctr.Name)
Next
rs.MoveNext
If Not rs.EOF Then Me.NextRecord = False
End Sub
Private Sub Report_Unload(Cancel As Integer)
rs.Close: Set rs = Nothing
End Sub

0 件のコメント: