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

明細に集計行を追加する③

小計まで出したら、追加で消費税と税込金額も明細に追加することができます。
こんな感じで。

やることは、小計行の数字に0.1掛けた金額を追加クエリで追加します。

基本は前回の小計を追加するクエリをコピペして、編集します。
変わる点は、小計にのみ税率をかけるので、単位のフィールドに抽出条件として
“小計”のみ計算対象にします。

追加クエリを実行すると印刷用のテーブルは下の通りになります。

同じ要領で次に小計と消費税をたして税込金額のレコードを追加します。

次は集計対象を”小計”と”消費税”で抽出し、Sum関数で合計します。

追加クエリの実行結果です。

あとはこのテーブルを印刷するのですが、印刷を押したときのコマンドボタンのコードに
今回の追加した二つのクエリを実行する分も追加します。

Private Sub コマンド49_Click()
DoCmd.OpenQuery “Q見積明細印刷用削除”
DoCmd.OpenQuery “Q明細追加”
DoCmd.OpenQuery “見積印刷小計追加”
DoCmd.OpenQuery “見積印刷消費税追加”
DoCmd.OpenQuery “見積印刷税込追加”

DoCmd.OpenReport “見積書”, acViewPreview, , “見積書NO=” & Me!見積書NO & “”
End Sub

こんな感じです。クエリの順番は必ずこの順番になります。

このやり方であれば、テーブルにないレコードを印刷しようとしたときに、必要なレコードを
作成し、追加クエリで追加すれば、自由に設定をすることができます。

====================================
昨日は長女の大学入試の共通テストでした。
自己採点の結果は、実力は発揮できたかなと思います。
この先1か月、私立の受験も始まり本格的な受験シーズンに
突入します。
高校受験と違った緊張感が我が家では漂っています。

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

レポートの行数が定まらないときの対処法

レポートを印刷するときに、詳細タブでVBAコードで印刷する行数を指定しているにも関わらず、
うまく表示できない場合がよくあります。

こんな感じです。本来なら2枚目に収まるはずが、3枚まで枚数が増えていて、尚且つ
2枚目は空白が多いです。

これでは使い物にならないので、調整が必要になります。

ではどこを調整するのかというと、デザインビューでレポートを開きます。
最初に手を付けるところは、改ページのプロパティの高さを調整します。

ここを0.〇ミリ単位で微調整していくと、直るときがあります。
まずは詳細タブの改ページの高さを調整してみてください。

多くの場合はこれで直るのですが、それ以外にも
レポートヘッダーやフッター、請求書NOヘッダーやフッターの幅(高さ)も調整してみてください。

いろいろ試していくうちに、下の図のようにうまくまとまる設定が見つかります。

経験上、20分くらいいろいろ高さを直しているうちに直るケースが多いです。
何故VBAのコードで行数を指定しているのに、そうならないのか理由は分かりません。
一発で上手くいくケースの方が少ないです。

大事なことはあきらめず調整し続けることです。

===========================================
コロナ期間中税務調査も自粛でしたが、10月1日から解禁となります。
ただ今まで実地調査が基本でしたが、密の関係で、今までと違った税務調査の
やり方が始まりそうです。

こちらからしてみると、調査の立ち合いは正直暇で仕方がないので
さっと終わる形になるといいなと思います。

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

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

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

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

最初に行数を指定します。
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ファイルを直したら、その直した
クエリ
フォーム
レポート
を覚えておきます。
続きを読む