Please visit our sponsors.
スポンサーも訪れて下さい

★MSアクセスウエッブカレッジサンプル(ダウンロードする)|業務統合4in1小さな会社用『感嘆!』  
現金出納帳作成:残高計算をマクロで行う

業務システム作成の中では残高を計算することは多いが、この残高計算は難しい. というのは、残高を計算するには、いくつもの工程を経る必要があるからです .

  • 帳簿の残額の計算

  • 在庫などの残計算

  • 受注残などの計算

  • 請求/入金からの残高計算

  • 手形などの残高と未決済算の計算

  • その他

  • ■現金出納帳の作成
  • 今回は、帳簿における残高計算の代表、現金出納帳の作成(残高計算)を紹介します.

現金出納帳は小遣帖のようなもので、現金の収入、支払を記帳して、日々の残高を明らかにしておくものです .又、残高を計算する場合の、一つのポイントは、繰越をどう扱うかの問題です.

月の初めの金額を持ってくる場合、それはどこから持ってくるのか、入力するのか?など決めておくことが一杯あります.

  • 今回の、繰越高の、扱いの条件は、

残高はその都度入力し、入力された残高を、残高として、以降の日々の残高を計算することとします.

  • データベース名は、「残高計算」とします

  • 残高計算データベースのシステム概要は下記の通りです

.

入力されている伝票データ〔支払い、入金データ〕伝票累積T)から、現金出納帳を作成する.

  • 伝票累積データには、預金科目(112)が

1レコード入っています.これは、いろいろのデータから、指定データ(今回は、現金(111)のデータを処理していることを あらわしています.実践に備えてのことです.

完全に現金のみのデータを扱う場合、データから、選択する必要がないので、クエリー内容が変わります。

  • 又、今回は、日付を選択できるように、設計されています
.2日分でも1週間分でも、日付は範囲を入力することで、指定された出納帖が出来上がります。
  • 残高は、入力された繰越金額をスタート(初期値)として、日々行単位残高計算を行います

.
  • 残高計算のポイントは、計算のための、ワークテーブルを利用することです

.
  • 残高計算データベースの構成
  • テーブル一覧
  • 上記の科目マスタTは、今回のテーマにはなくてもいいものですが、現金だけでなく他の科目もあった場合、を想定し、その場合のヒントになるようにしました.
  • F4出納帳WTとK帰計算ワークWTは、残高計算のためのテーブルです

  • クエリーの一覧
  • このクエリーは、
  • 残高計算用のものです
  • 借方データ作成と貸方データ作成クエリー):計算ワークテーブルにデータを作成するクエリ
  • (出納帳Q):残高計算用に、データを並べるクエリーであること、および、出納帳レポートに表示することの両方に利用

  • 出納帳WT削除クエリー:計算ワークテーブルは計算のたびに、データをクリアにしなければならない.そのWTのデータを削除するクエリー

  • フォーム一覧

ォームは、今回は、出納帳作成画面のようなメニュフォームが出納帳メニュフォーム

  • 残高計算用のフォームが2つ

出納帳WF

計算ワークWF

  • レポート一覧出納帳として、出力する出納帳レポートです.印刷されるものは、これ1つです.

 

  • マクロ一覧
  • この中で、重要なマクロは、2つ、この2つは完全に理解しましょう
.
  • 現金預金勘定出納帳SM

  • 出納帳残高計算M

以上が、残高計算データベースの構成です. 少ないでしょ?これで出納帳の作成が出来ます.

では、作成のポイントを以下に紹介します.

  • ■残高計算の仕組みを考える

 1 繰越データは入力する

   繰越データを入力すると決めていまが、これがもっとも簡単な残高計算の方法です. 勿論、残高を0からスタートさせる方が簡単ですよ.ただ、実際的には、 月が進んでいくと、月の初めの残高は変わるわけで、この数字の取り方が検討事項になります.

    

 2 計算用にワークテーブルを作成する:残高計算はワークテーブルで行う伝票累積Tのデータを直接利用して、残高を計算することも可能ですが、データを選択し加工する場合、データを自由に扱えるように、オリジナルデータからはなして、別のファイルデータを作成(ワークファイル)するほうが良いと思う.

計算のために必要なフイルドも、ワークテーブルには追加することも出来る.

 3 計算結果を、出納帳レポートに反映させて表示する.

  

  • ■残高計算用テーブル作成
  •   (元データ:伝票累積T内容)     (計算用ワークテーブル:出納帳WT)
  • ワークテーブルの多くは、元テーブルを複写することで作成できます。
  • フイールド名は元テーブルと同じにして下さい
.(コピーなら、OKですよね)

同じなら、追加クエリーなどで、名前が違うことによるトラブルが防げます。名前を入力する場合、空白、半角、全角などが違ってクエリーが正確に動かないことになりがちです。注意事項です.

トラブルクエリーで、間違いが見つからないとき、名前の問題が原因だったりすると泣けますよ全く。

  • ワークテーブルに追加したフイールド

1 残高

2 最終マーク

  残高計算の、決め手がこのフイールドです.残高計算は、サブマクロを使って計算し ますが、サブマクロの場合、どこでサブマクロを終了させるかが大きな課題となります. 回数で固定できるものは、簡単ですが、データの量が決まらない場合、使えません. データ数より大きいマクロ実行の回数指定をすると、レコードがない、移動できませんなどのエラーメッセイジがでて、マクロが中断されてしまいます.

データが最後のものにマークを付けるフイールドです.

  • テーブルが出来ました。残高計算の仕組みをもう一度考えます

 上記計算の仕組みをマクロとして表現することになります.

  • 残高計算データベースでは、出納帳の作成は、メニュ画面から、日付範囲を指定して成ボタンクリックによってマクロが動き、出納帳を作成するようになっている.

 

 

  • ■出納帳作成画面
  • ■出納帳作成マクロ
  • 作成ボタンをクリックすると下記マクロが実行される
.
  • ポントを説明していきます。

 

 

残高計算開始で、レコードの一行目から計算しますが、下記はその計算順にデータ(レコード)を表示するところです.

この例では、フォームを開くときに、フィルタで「出納帳Q」(下記画面中フィルタ名参照)を設定して、データ(レコード)を並び変えている.

  • これが、並び換えのためのクエリー(出納帳Q)です
  • 年月日順、伝票番号順に並び換え設定しています。

  • 並び換え結果のチェックポイントは1つ、繰越金額が、一番最初に来ているかどうかですもし、きていなかったら、並ぶように修正します. 修正は、出納帳クエリーまたは繰越データ作成のマクロ部分です. 繰越データの日付と伝番が最初にくるような数値でないと駄目です。

 

 次のポイントは、残高計算です

  • 残高計算は、全てマクロで行います。

  • 一括してクエリーで計算する方法が見つかりません
  • まず1行目の残高計算をします
.


□残高計算の1:残高金額を計算ワークに移す


○計算結果:データ(レコード)は順番になっていないが、計算結果のテーブル表示

  • ■残高計算サブマクロ
  • 残高計算サブマクロは、アクション条件と、繰返し条件式がポイントです
条件は、慎重に設定してください .
  • 上記サブマクロの条件式は下記のとおりです

[Forms]![F4出納帳WF]![最終マーク]<>999 And [Forms]![F4出納帳WF]![最終マーク]=0

上記条件を有効にするには、マクロで、データ(レコード)の最終分の最終マークに999を入れておかなければなりません。

  • 注意:設定条件がエンドレス設定になってしまうと、ハードメモリがなくなるまで終わりません.エンドレスに入ったなと感じたら、早めに強制終了してください.
  • ■出納帳レポートの作成

  • 出納帳レポートのポイントは、データの並びです

レポートでは、なかなか、思ったようにデータが並びません.


データの並びは、下記の画面で設定します
. 出納帳レポートの設定です.

 □■出納帳レポート結果

  • 以上出納帳の作成を紹介しました
  • 残高計算は、原則として、上記のようなマクロを使って行います

  • 応用範囲は広いと思います

感想は アクセスマクロ会議室へ :篠山 勲