カテゴリー別アーカイブ: Access(アクセス)

請求明細から請求書を作る⑥~細部の調整

使い勝手を良くしていきます。

請求書と摘要を毎回変更できるようにします。
変更前のクエリです。

変更後。

タイトルと摘要を請求書を作成する都度変更できるようにします。

実行結果です。

こんな形で柔軟性を持たせることもできます。

あとはマクロを使って、二つのクエリを一度に実行できるようします。

更新クエリや追加・削除クエリを実行すると毎回ダイアログボックスが表示されます。

確認を要求される場合は、次の設定を変更してください。
メニューバーのファイル⇒オプション⇒クライアントの設定の順で下記のチェックを
外してください。

最初のうちはクエリが正しく動いているかどうか確認の意味でチェックはつけておいた方が
いいですが、問題なく動くときはチェックを外します。

==========================================
今年も残すとこ一月半となりました。
もう年末の足音がきこえてきました。
うちは息子が受験なので、年末年始は家にいます。

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

請求明細から請求書を作る④~請求明細データを追加する

Excelからテーブルにインポートしたレコードから明細を作り直します。

最初に請求明細を入れるテーブルを用意します。
フィールドの設定はこんな感じです。インポートしたときはたくさんのフィールドが
ありましたが、必要最低限のものでいいと思います。

続きを読む

請求明細から請求書を作る③~請求書のメインデータの作成

出力する請求書は次の通りです。一般的な請求書ですが、では何件の請求書を作成すれば
いいのでしょうか?

それは当たり前ですが、明細に出てくる請求先の数の分だけ請求書の頭を作る
必要があります。

では請求書の枚数をどう数えたらいいのでしょうか?

請求明細の顧客名もしくは顧客CDをグループ化することで、何枚の請求書が
必要かわかります。

Q名前の実行結果です。

全部で336件の得意先の明細があるのでその分請求書も作ります。

このQ名前を使って請求書を追加クエリで作ります。
下の図のようにクエリの設定をします。追加先はT請求書です。
(事前にT請求先を作っておいてください。)
T請求書の設定内容

Q請求書追加として保存します。

Q請求書追加クエリを実行すると次のようにT請求書にデータが作成されます。

Q名前の実行結果とT請求書のレコードの数が一致していることを確認してください。

とりあえず請求書の頭と、明細のデータができたので、次はこれをリンクさせます。

========================================
人間ドックでγGTPの値が三桁に跳ね上がっていたので、家飲みを禁止にして
2か月が経過しました。
ビールを飲まなくなり、その分摂取カロリーも減り、たまに痩せた?
と聞かれます。
確かに2キロぐらい痩せましたが、マラソンのトレーニングのお陰で元々痩せ型の体形なので
そう言われても嬉しくありません。
逆にそう見られないように体重を維持しないと。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

請求明細から請求書を作る①概要

この前、知り合いからExcelの明細から請求書を作れないか?という相談があり
やってみました。なかなかの出来栄えでしたので、そのやり方を解説します。

概要としてはこんな感じです。
Excelにとあるシステムから掃き出した請求明細があります。

続きを読む

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

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

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

最初に行数を指定します。
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の難しさは個人的にはここに集約されると思います。。
続きを読む