5.10 レポートの印刷
 Accessのレポートを印刷する方法です。アクセスオブジェクトのDoCmd.OpenReportというメソッドを使います。

 Accessのレポート機能をうまく使い印刷用の高価なOCXを買わずに済ませる…なんてことや、もちろんバッチ処理で定期的に自動で印刷したり、夜間に印刷しておいたり、なんてこともできます。
DoCmd.OpenReport
 DoCmd.OpenReportメソッドの使い方です。こんな順序でパラメタを指定します。

アクセスオブジェクト.DoCmd.OpenReport (1) ,(2)

 指定するパラメタは2つです。(1)にレポート名、(2)にacViewNormalを指定します。なお、acViewNormalというのは印刷するという意味で、(2)に指定できる物は以下のようなものがあります。

acViewNormal 印刷します。もちろん、プリンタに出ます。
acViewDesign デザインビューで開きます。印刷されません。
acViewPreview 印刷プレビューで開きます。印刷されません。

 下の2つはAccessの画面上で表示するときの使う物です。印刷したいのだから、迷わずacViewNormalだね!
使用例
 DoCmd.OpenReportメソッドの使い方です。例では、c:\happyというフォルダに入っているisland.mdbというMDBファイルを開き、その中に入っている一覧表というレポートを印刷しています。もちろん、実行すると直接プリンタへ出てきます。

 レポートを印刷するとき、印刷内容の編集など何らかの処理が必要だったりすることが多いと思います。が、そこまでVBS(WSH)で…ってのは無理な話なので、そんなときはVBS(WSH)の方ではAccessのレポート印刷をキックするまでを担当、その後の詳細な編集処理はAccessのレポート内に埋め込んだプログラム(VBA)に任せてしまうと良いですよ。

こっちがメイン(実行する方)。ファイル名はReportMain.wsfで作成
<job id="AccessJob">

<!-- Accessのライブラリを宣言(Accessの定数を使うため) -->
<reference guid="4AFFC9A0-5F99-101B-AF4E-00AA003F0F07"></reference>

<script language="VBScript" src="Report.vbs"></script>
<script language="VBScript">

    '主となる処理はReport.vbsにあるので呼び出します
    Call prcMain

</script>

</job>

 ちなみに、Accessを終了する方法は5.11 Accessを終了するを見てくださいね。

こっちは実際の処理を行う方。ファイル名はReport.vbsで作成
Option Explicit

Dim objAccess

Sub prcMain()

    'Accessオブジェクトを作成します
    Set objAccess = CreateObject("Access.Application")

    'Access画面を表示します
    objAccess.Visible = True

    '元となるMDBファイルを開きます
    objAccess.OpenCurrentDatabase("c:\happy\island.mdb")

    'レポートを印刷します
    objAccess.DoCmd.OpenReport "一覧表", acViewNormal

    'MDBファイルを閉じます
    objAccess.CloseCurrentDatabase

    Set objAccess = Nothing

End Sub
 ※例では、Accessの画面をわざと表示しています
Copyright(C) 1999-2006 結城圭介。 All rights reserved