DXR165の備忘録

自分用の備忘録です。

Access レポート 通常使うプリンター その他のプリンター  

Access レポートの ページ設定/ページ タブで「通常使うプリンター」と「その他のプリンター」が設定できます。 「通常使うプリンター」が規定値です。通常はこのままで問題ないと思われます。

「その他のプリンター」を設定すると以下のようなことが可能になります。
    複数のプリンターがインストールされているときに、レポート毎にプリンター切り替える。
    1つのプリンターしかインストールされていないが、レポート毎に給紙トレーを切り替え、用紙サイズなどを切り替える。

設定を保存する際はプリンタープロパティー画面まで開き、設定し、保存します。プリンタープロパティの細かい設定まで保存してくれるようです。が、どこまでの設定を保存してくれるかはっきりしません。実際にテストプリントして確かめるほかありません。また、いったん保存すると、保存値は新たな保存値を上書きしないと変更されないようです。また、「通常使うプリンター」の設定に戻し、レポートを保存しても、保存値は有効になる場合があるようです。
このように、「その他のプリンター」の設定は便利ですが、あとのメンテナンスが大変そうです。

このへんの情報はヘルプやネットでも情報は少ないです。いずれにせよ、注意しないといけないのは設計時に使用していたプリンターが変更になったときです。いろいろ試行錯誤は覚悟しないといけません。

category: Access レポート

tb: 0   cm: 0

Access レポート レポートのサイズと印刷用紙サイズ  

レポートのサイズ と実際にプリンターからでてくる印刷用紙のサイズの関係
レポートのサイズ の横幅はレポートの幅プロパティの値です。縦は各セクションの高さプロパティの合計 でいけそうですが、そう簡単ではありません。それは、詳細セクションやグループヘッダ、フッタはデータの値によって繰り返し印刷されます。データベースソフトですのでほとんどの場合たくさんのデータを印字するので、印刷する用紙サイズ の縦サイズよりあふれます。そうです、あふれることを前提にレポートの仕様が作られています。ですので、縦のサイズはページ設定の用紙サイズの縦の高さ(同一サイズの用紙でも印刷の向きの設定で縦の高さが変わります。)になります。
レポートの幅プロパティとページ設定の余白の合計がページ設定の用紙サイズの横幅よりも大きくなると印刷がはみでてしまいます。プリンターには機械的な要因で用紙に印字できない部分があります。(フチなしプリンターなどあるようですが。)たとえば左右上下の余白が1mmなどの設定はレーザープリンターなどではできないようです。あるメーカーのレーザープリンターを調べてみると、A4の余白は5mm以下は設定できない仕様でした。どこまで余白を小さく切りつめられるかは、各プリンタードライバーのマニュアルなどで印刷範囲を調べ設定します。プリンターはページ設定で指定された用紙サイズを給紙口から取り出そうとします。給紙口にそのサイズがなければ、プリンター側でエラーが発生し、OSなどに知らせます。

category: Access レポート

tb: 0   cm: 0

Access 手動で作るラベル印刷   

ウィザードを使わずにラベル印刷 の設定


一からレポートをデザインビューで

レポートのレコードソース を指定する。

詳細セクションだけにする。

レポートの幅をラベルの横幅にする。

詳細セクションの高さをラベルの縦幅にする。

必要なフィールドを詳細セクションに追加する。

ページ設定の印刷オプション タブで
余白(左)を最左のラベルの左余白を設定し、右も同一の値にする。
余白(上)を最上のラベルの上余白を設定し、下も同一の値にする。

ページ タブで
用紙サイズを指定する。ラベルシートのサイズはA4が多いようです。

レイアウト タブで
列数 ラベルが横にいくつ並んでいるかを設定。行、列間隔は各ラベルに応じて設定する。
サイズは実数にチェックがついていたらOK。
印刷方向はお好みで。

category: Access レポート

tb: 0   cm: 0

Access レポート レポートビュー  

Access 2007 からレポートではレポートビューが登場しました。しかも、ダブルクリックで開く既定のビューになっています。Access 2003 では印刷プレビューが既定のビューでした。レポートビューで開いてみると、印刷プレビューと同じようですが、ページの概念がなくページを移動するボタンはありません。右側にスクロールバーがあり、全体を見渡せます。

メモ
レポートビューではFormat イベントは発生せず、Paint イベントが発生しているようです。

category: Access レポート

tb: 0   cm: 0

Access レポート 「レポートの幅がページの幅を超えています」  

レポートウィザードでレポートを作成し、デザインビューにするとレポートセレクタに上記のエラータグが付くことがあります。しかし、実際に印刷プレビューしても「セクションの幅がページ幅よりも広く、…一部のページが…」のエラーが出ることなく、正常に印刷れます。おそらく、レポート幅と余白、用紙サイズの小数部の計算がエラーチェックと印刷プログラムとで違うためではないでしょうか。印刷時エラーがでなければ、このエラーはあまり気にしなくてもよさそうです。

category: Access レポート

tb: 0   cm: 0

Access レポート "FitToPage/ページに合わせる" プロパティとは  

Access 2007 以降に追加されたレポートのプロパティですが、どのように動作するかよくわかりません。また、ネットでも情報は少ないようです。

category: Access レポート

tb: 0   cm: 0

Access レポート グループ化と集計  

レポートでグループ化したとき、よく要望があるのがグループ毎の集計です。たとえば営業担当者ごとの販売した商品の一覧表で売上合計をグループフッターに印字するときなどです。これもウィザードが便利ですが、動作原理を理解しておくと応用が利きます。

ウィザードで集計を設定したレポートを作成するとグループフッターなどに Count() や Sum() などの集計関数を使った非連結テキストボックスが作成されます。集計するフィールドを変更したい場合はこの Sum([フィールド名])を変更します。Access 2007 以降では、別途「グループ化、並べ替え、集計」ウィンドウで集計を詳細に設定できる機能が追加されています。このウィンドウで集計の設定をすると自動的に集計に必要な関数などをコントロールソースにしたテキストボックスがセクションに作成されます。

メモ
レポートの詳細セクションなどで累計値などを表示する場合は連結コントロールのテキストボックスで[集計実行]プロパティを使用します。

category: Access レポート

tb: 0   cm: 0

Access レポート 偶数ページなら改ページする  

グループ毎に改ページしていて、偶数ページで新しいグループが印刷されようとするときに、さらに改ページして印刷する方法

グループヘッダーセクション(A) に以下を処置する。
改ページプロパティを「カレントセクションの」にする。
改ページコントロール(B) を置く、セクションの高さはゼロにしない。

Private Sub Report_Open(Cancel As Integer)
    Me!B.Visible = False
End Sub

Private Sub A_Format(Cancel As Integer, FormatCount As Integer)
If Me.Page Mod 2 = 0 Then
    Me!B.Visible = True
Else
    Me!B.Visible = False
End If

注意事項
グループヘッダーセクションに改ページコントロールを置いたとき、セクションの高さをゼロにすると、改ページコントロールが機能しないようです。

category: Access レポート

tb: 0   cm: 0

Access レポート セクション  

レポートには以下のセクションがあります。これらをうまく組み合わせて帳票を作成します。


レポート ヘッダー→あまり使わない

ページ ヘッダー→Word,Excelのと同じ、すべてのページに印刷される

グループ ヘッダー→グループ化を設定し、「ヘッダーを表示をする」のとき現れる。印刷されるタイミングはグループで設定した値がブレークし詳細セクションが印刷される前。用途はグループ名など表示。デザインビューでは「○○ ヘッダー」で表示される。○○はグループ化したときのフィールド名が表示されている。

詳細→1レコードつき1回印刷される。明細行などを設定する

グループ フッター→グループ化を設定し、「フッターを表示をする」のとき現れる。印刷されるタイミングは1グループの最後の詳細セクションの後。用途はグループの合計など表示。デザインビューでは「○○ フッター」で表示される。○○はグループ化したときのフィールド名が表示されている。

ページ フッター→Word,Excelのと同じ、すべてのページに印刷される

レポート フッター→あまり使わない

category: Access レポート

tb: 0   cm: 0

Access レポート グループ化  

実務で使用される帳票では、ある単位ごとに区切って印刷を制御したいことがあります。たとえば、販売会社などで営業担当者ごとの販売した商品一覧を出力する場合などです。このような帳票を出力するときに、グループ化を使います。

グループ化を使うにはレポートウィザード内で「グループ化するレベルを指定する」の設定画面で指定する方法が簡単です。

また、一度作成したグループ化の設定を変更する場合はつぎのコマンドを使用します。
Access 2003→ツールバーの「並べ替え/グループ化の設定」
Access 2007,2010→「グループ化と並べ替え」 
  

 グループ化の実態は?
上記の「並べ替え/グループ化の設定」 のウィンドウを見ていただければわかるのですが、グループ化のプロパティはレポートのプロパティ シートにはでてきません。ということは、グループ化の実態はレポート オブジェクトとは別にあるようです。開発者用ヘルプでは「グループレベル 」オブジェクトが存在しているのがわかります。

同一ページ印刷 プロパティとは
グループ化の同一ページ印刷 プロパティについて

[しない] →グループが複数ページにわたるときに改ページの位置に関係なく印刷されます。(規定値)
[グループ全体]→グループヘッダー・詳細・グループフッターが同じページに印刷されます。最終行の詳細とグループフッターの「ページまたがり」やグループヘッダーと最初の詳細の「ページまたがり」などをが防げます。
[最初の詳細セクション]→少なくともグループ ヘッダーから最初の詳細セクションまでは同一ページに印刷されます。グループヘッダーと最初の詳細の「ページまたがり」が防げます。 

となっています。グループ化印刷の際に見やすい印字にしたいとき設定するようです。また、レポートウィザードでグループ化した場合は規定値が設定されるようです。 

さらにややこしいことに、各セクション(ページヘッダーとページフッターを除く)のプロパティにも同一ページ印刷 プロパティ(こちらの選択肢は「はい」か「いいえ」)があります。こちらの場合は各セクションが「ページまたがり」をしたくないとき「はい」にします。両者の違いは制御する単位です。グループ化の方はグループ単位、各セクションの方はグループヘッダーなどセクション単位です。そうすると、両者のプロパティが干渉するのではないか?と疑問が湧いてきます。そこで、調べるとつぎのような例外事項がヘルプにありました。

セクションに対する "KeepTogether/同一ページ印刷" プロパティが [No/いいえ] に設定され、グループに対する "KeepTogether/同一ページ印刷" プロパティが [Whole Group/グループ全体] または [With First Detail/最初の詳細セクション] に設定されている場合、セクションに対する "KeepTogether/同一ページ印刷" プロパティは、無視されます。

必ずグループ毎に改ページしたい
グループヘッダ セクションの改ページ プロパティで設定します。詳しくは dxr165.blog.fc2.com/blog-entry-30.html を見てください。"同一ページ印刷" プロパティの[グループ全体]でうまくいきそうですが、詳細行が2、3行と少ないグループが多いときなどはA4の1ページ内に異なるグループが印字されてしまいます。
ですので、このグループ化の"同一ページ印刷" プロパティは必ずグループで改ページしたいときには使えないということです。

セクション繰り返し プロパティって?
これはセクションの中でもグループヘッダーにしかないプロパティです。グループ毎に印刷したとき、ある1つのグループが2ページ以上になると2ページ以降にはグループヘッダーは表示されず見にくい場合があります。このようなときにセクション繰り返しプロパティを[はい]にします。規定値は「いいえ」です。




category: Access レポート

tb: 0   cm: 0

Access レポート ウィザード  

レポート ウィザードを使いこなせるとレポートの生産性が向上します。ウィザードはAccessのバージョンによって設定内容に少し違いがあります。以下、私がよく使うパターンを説明します。

予め印刷に必要な項目はクエリで結合しておく。
グループレベルを設定すると印刷形式は「ステップ」「ブロック」「アウトライン」などの選択になる。
グループレベルを設定しないと印刷形式は「単票形式」「表形式」「帳票形式」の選択になる。
印刷形式「ブロック」を選択するとExcelで印刷したリストに近いレポートができる。Access 2007 以降では幾分手を加えないといけなくなりました。
スタイルは「ゴシック」で十分です。(Access 2003の場合)
ウィザードで設定できることは可能な限りしておく。

category: Access レポート

tb: 0   cm: 0

Access レポート ページ設定  

〈ページ設定〉では選択されたプリンターで使用可能な用紙サイズや向き、給紙方法を指定できます。〈ページ設定〉で設定した値はは各データベースオブジェクトごとに保存されます。このことで、各レポート毎に異なる印刷設定をレポートのデザインの一部として保持することができます。

ページ設定でプリンター固有の機能に左右されやすいのは「用紙サイズ」「給紙方法」です。「印刷の向き」は選択肢が2つしかありませんので、ほとんどのプリンターで対応できているようです。

ページ設定の印刷の向きとは
レポートのデザインで印刷用紙を「縦」または「横」どちら向きでレイアウトするかを指定します。プリンターのトレイに印刷用紙をタテまたはヨコで入れるかの指定ではありません。

「給紙方法」はトレイの2段目にはいつもA3が入っているので、レポートAのときは常にトレイの2段目から給紙してA3で印刷したいときなどにこの設定を使います。この設定はレポートAに保存されるので、このレポートを印刷実行するだけ、手動でトレイを切り替えなくてもA3で印刷できます。

ページ設定 余白の設定
ページ設定の余白の規定値は 「Access のオプション」の設定値が引き継がれます。レポートウィザードを使用した場合は、レポートウィザードが独自に設定した値になる場合があります。

ページ設定 レイアウト タブ
これは段組み印刷をするときに使用します。段組み印刷はは宛名ラベルを印刷するときに必要です。段組み印刷をしないときはこのレイアウト タブを設定する必要はありません。ラベル印刷ウィザードでレポートを作成したあと、微調整するときなど、このレイアウト タブを設定します。
行列設定/行数→実物用紙ページ内の論理的ページを横にいくつ並べるか指定します。
サイズ/幅・高さ→実物用紙ページ内の論理的ページのサイズを指定します。規定では現在のレポートの幅、詳細セクションの高さになっています。ので、手動で列数を2以上にした場合は手動でサイズを計算し値を指定します。サイズ/実寸にチェックを入れると現在のレポートの幅、詳細セクションの高さに等しくなります。
縦にいくつ並ぶかは実物用紙の縦のサイズとサイズ/高さと行列設定/行間隔と余白で決まります。


実物用紙サイズ (mm)

A3→297×420
A4→210×297

B4→257×364
B5→182×257

(Access 2007 以降ではページ設定タブのサイズをクリックすると各用紙のサイズもcm単位で表示され細かい設定のときに便利です。ネットで調べたりしなくて済みそうです。)


category: Access レポート

tb: 0   cm: 0

Access レポートのイベント発生順序  

レポートを開き、印刷または印刷プレビューを実行したときの一般的なイベントの発生順序
Open (レポート) →
Activate (レポート) →
Format (セクション) →
Print (セクション) →
Close (レポート) →
Deactivate (レポート)

このようにレポートとセクションのイベントが組み合わさって発生しますので、複雑になっています。

メモ
詳しくは下記のようになっているようです。
各セクションごとにFormat 、Print イベントが発生し、該当セクションがFormat時にページに収まらないときはPrint が実施されず、ページフッターに移り改ページされ、ページヘッダーに移り、次に該当セクションがFormat,Print実施される。(FormatCountは2になっている) 

グループ化のプロパティ「同一ページ印刷」を「グループ全体」「最初の詳細セクション」に設定のとき2グループ目以降でRetreat イベントが発生する。
Retreat イベントはセクションのイベントです。

合計ページ数を印字するにはレポートのPages プロパティを使用した式に設定されたテキスト ボックスをレポートのページフッターなどに含める。この場合、印刷または印刷プレビューで開くと、合計ベージ数を計算するために各セクションのFormat イベントが実行され、その後通常の手順のイベントが発生する。 

Page イベントはレポートのイベントです。 ページが印刷のためにフォーマットされた後、印刷される前に発生します。

NoData イベントはレポートのイベントです。データのないレポートが印刷のためにフォーマットされた後で、印刷される前に発生します。

Access 2007 以降では セクションにPaint イベントが追加されましたがこれは同タイミングで追加されたレポートビューのときに発生するようです。
 
Print 、Page、 Paint と同じような名前のイベントがありますので、混同しないように気を付けないといけません。

category: Access レポート

tb: 0   cm: 0

Access グループ毎に改ページ  

グループレベルを設定すると、グループヘッダーが作成されます。
改ページしたいグループのヘッダーセクションのプロパティの中の改ページの設定でカレントセクションの前を指定する。

category: Access レポート

tb: 0   cm: 0

プロフィール

最新コメント

カウンター(2012/3/10以降)