カテゴリー別アーカイブ: レポート

レポートの行数を指定するコードを読む②

レポートの行数を指定するときの、肝の部分を解説します。
まず前提として下の画像をご覧ください。

下の言い回しがよく出てきますが、オブジェクトの名前とテキストボックスが一致している
ことがわかると思います。

最初に行数を指定します。
If i Mod 18 = 0 Then
18が行数です。20行にしたいなら18を20としてください。
ここで、iが18で割り切れるときとそうでないときに大きな違いがあります。
18で割り切れるときは通常改ページをします。
でもデータの数が18個の場合、ちょうど1ページで収まります。
19の場合は次のページに1行表示されます。
それがこの違いです。
If i = j Then
 Me![日付].Visible = True
 Me![項目].Visible = True
 Me![使用量].Visible = True
 Me![料金].Visible = True
 Me![消費税].Visible = True
Me![税込金額].Visible = True

ElseIf i < j Then Me![bpage].Visible = True
Me![日付].Visible = True
Me![項目].Visible = True
Me![使用量].Visible = True
Me![料金].Visible = True
Me![消費税].Visible = True
Me![税込金額].Visible = True

i=jのときは改ページのコードがありません。
ij)のときはもう次のレコードがないのでFalseになります。
これが大まかな流れです。

次によく出てくる言い回しを解説します。

Me![日付].Visible = True
Me![項目].Visible = True
Me![使用量].Visible = True
Me![料金].Visible = True
Me![消費税].Visible = True
Me![税込金額].Visible = True

レポートにテキストボックスがあるのにVBAコードにない、となるとエラーになります。

ここで
Me![日付].Visible = True
これを詳しく読み解くと
日付のテキストボックスの表示を見える状態にします。

Me![日付].Visible = False
この場合はVisbleがFalseなので見えない状態になります。

ではどういう場合にTrueになって、どういう場合にFalseになるのか?
というと、一番大きな違いは、
表示するレコードがあるかどうか?ということです。
当然レコードがあれば、表示はTrueになるし、なければFalseになります。

表示するレコードがあるかどうかの判定は
iがjより小さい場合はTrueになります。
iはループする回数で、jは表示するレコードの数です。
i=jならVisibleはFalse
となります。

非常に分かりにくいですが、ずっと見ているとなんとなく言わんとしていることが
分かってくると思います。頭の中でiを回しながら、いまどんな状態なのか、イメージ
してみてください。
============================================
10年間整体に通うことなく走り続けた体は、かなりバキバキに固くなっていました。
いま週2で整体に通って体をほぐしてもらっています。やはり体の手入れは大事だなと
思う今日この頃です。

本日も最後までお読みいただきありがとうございます。

レポートの行数を指定するコードを読む

Accessでレポートを印刷する場合、何も指定しないと尻切れトンボの請求書
が出てきます。

Excelなら行を挿入して簡単に手直しができるのですが、
Accessの場合はこれをプログラミングで制御しなければいけません。

Accessの難しさは個人的にはここに集約されると思います。。
続きを読む

レポートを用紙に合わせる

レポートの設計をしている場合、横幅が問題になる場合があります。

このように1ページに収まらない場合、警告が出ます。

これがどういう理屈で出るのかというと、A4サイズの横幅は210mmとなっています。
では210mmまでに収めればいいのか?というとそういうわけではありません。

印刷には余白が必要です。
続きを読む

クエリ・フォーム・レポートを更新した場合

クエリ・フォーム・レポートを更新したときは、次の手順で違うファイルのクエリ等を
更新します。

Accessはご存知のとおり、テーブルにすべてのデータが保存されています。
私の場合、お客さんにAccessファイルをお渡しして、運用してもらっていますが、
何か修正があった場合は、お客さんに渡したファイルを引き取って修正をするのではなく、
そのファイルをコピーして、そのコピーしたファイルを最初に直します。

そうしないとお客さんの業務がと滞ってしまいます。

コピーしたAccessファイルを直したら、その直した
クエリ
フォーム
レポート
を覚えておきます。
続きを読む

改ページしたときにページ数を表示する

ページ数を印刷物右上に表示させる方法です。

1ページ目

2ページ目

このように表示させます。

最初にデザインビューでレポートヘッダーとページヘッダーにページ数と見積書NOを表示できるように
設定します。

このまま印刷の処理をかけると、1ページ目にレポートヘッダーとページヘッダーの二つの
ページ数が表示されてしまうので、これでは使い物になりません。

考え方は、ページ数が1のときはページヘッダーのページ数を非表示にし、2ページ目以降に表示にする
ように設定します。

ページヘッダーのプロパティを開き、イベントタブの印刷時に次のコードを入力します。

Private Sub ページヘッダーセクション_Print(Cancel As Integer, PrintCount As Integer)
If [Page] = 1 Then
Me!ラベル110.Visible = False
Me!見積NO.Visible = False
Me!テキスト34.Visible = False
End If

If [Page] >= 2 Then
Me!テキスト105.Visible = False
Me!ラベル110.Visible = True
Me!見積NO.Visible = True
Me!テキスト34.Visible = True
End If

End Sub

これで印刷をかけると上のように、1ページ目はレポートヘッダーのページ数が、2ページ目以降はページヘッダーの
ページ数が表示されるようになります。

レポートの設定にはVBAが欠かせません。

=========================================
最近お酒にだいぶ飲まれるようになってきた感じがします。。
今まで家でもほぼ毎日少量ですが晩酌していましたが、今日からもう
家ではお酒は飲まないようにしようと決意しました。

とりあえず今日は飲みませんでした。

本日も最後までお読みいただきありがとうございます。