Microsoft Access 掲示板

クロス集計クエリからレポート印刷 / 13

50 コメント
views
4 フォロー
13
hatena 2021/03/19 (金) 03:37:59 修正

手順

  1. クロス集計クエリをデータシートビュー表示して全選択してコピー、エクセルのシートのA1に貼り付け
    画像1

  2. [ページレイアウト]-[ページ設定]-[サイズ]で「A3」 を選択、[印刷の向き]で「横」を選択。[印刷タイトル]をクリック。
    画像1

  3. [ページ設定]ダイアログが開くので、[タイトル行]、[タイトル列]を指定する。(マウスドラッグで指定できます。)
    画像1

  4. 1ページ分の範囲が点線で表示されているので、希望の行数、列数になるように行幅、列幅を変更する。

  5. [ファイル]-[印刷]でプレビューを確認。
    1ページ目
    画像1
    2ページ目
    画像1
    3ページ目
    画像1
    4ページ目
    画像1

  6. 印刷設定が済んだブックをデータを削除してからテンプレートとして保存する。

  7. ■T'sWare Access Tips #686 ~レコードセットの内容をそのままExcelのシートに出力する方法~の方法で、上記のテンプレートブックにクロス集計クエリのデータを出力する。印刷する。(「Microsoft ActiveX Data Objects * Library」に参照設定必要)

  Dim cnn As ADODB.Connection
  Dim rst As ADODB.Recordset
  Set cnn = CurrentProject.Connection
  Set rst = New ADODB.Recordset
  rst.Open "クロス集計クエリ", cnn, adOpenKeyset, adLockOptimistic
  'Excelオブジェクトを生成
  Dim xls As Object
  Set xls = CreateObject("Excel.Application")
  With xls
    'テンプレートブックを開く
    Dim wb As Object
    Set wb = .objExcel.Workbooks.Open("C:\TEST\テンプレート.xlsx")

    '最初のシートにデータ出力
    wb.WorkSheets(1).Cells(1, 1).CopyFromRecordset rst

    'Excelを可視状態にする
    .Visible = True
    ’印刷する。
    wb.WorkSheets(1).PrintOut
  End With
  Set xls = Nothing
  rst.Close: Set rst = Nothing: Set cnn = Nothing

2ページ目、3ページ目に空欄の合計列が必要な場合は、対応がちょっと難しそう。
空欄の合計列は必要ないとは個人的には思います。

通報 ...