メールマガジン【アクセスで作るシリーズ】


バックナンバー 【会計ソフト編】 Vol.41
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

    ACCESSで作るシリーズ  【会計ソフト編】

    発 行 : Yoshihisa Fukuda          2001. 1.27 Vol.41

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------


== ◇ 第4章 年度更新     ====================

今回は年度更新の元入金の集計サブルーチンの作成です。

--------------------------------------
4-1 年度更新
--------------------------------------
--------------------------------------
4-1-2 モジュール作成
--------------------------------------
元入金の集計サブルーチンを作成します。

【モジュール作成手順】
1.[モジュール]タブで前回作成した[CommonSub]モジュールを選択し、[デザイン]
  ボタンを押してモジュールウィンドウを開きます。
2.カーソルを一番下(前回作成したSubKamokuZanCalc()の下)に移動し、
  Function MotoireCalc() と入力しエンターキーを押下します。
3.すると1行空いて End Function と表示されます。
  この中に元入金集計のプログラムを記述します。
4.以下のコードを Function MotoireCalc() と End Function の間に記述
  します。

  Dim ACC_DB As Database
  Dim Kamo_T As Recordset
  Dim Env_T As Recordset
  Dim FindStr As String
  Dim TotalSisan As Currency
  Dim TotalFusai As Currency
  
  Set ACC_DB = CurrentDb
  Set Kamo_T = ACC_DB.OpenRecordset("KamokuTable", dbOpenDynaset)
  Set Env_T = ACC_DB.OpenRecordset("EnvironTable")
  
  TotalSisan = DSum("ZanDaka", "KamokuTable", "KamokuKind = 1")
  TotalFusai = DSum("ZanDaka", "KamokuTable", "KamokuKind = 2")
  
  Env_T.MoveFirst

  FindStr = "KamokuID = " & Env_T.Fields("MotoireKamoID").Value
  Kamo_T.FindFirst (FindStr)
  Kamo_T.Edit
  Kamo_T.Fields("ZanDaka").Value = TotalSisan - TotalFusai
  Kamo_T.Update

  Env_T.Close
  Kamo_T.Close
  ACC_DB.Close

5.モジュールを上書き保存します。

【解説】

まず、プログラムの解説の前に、元入金の計算方法を考えましょう。
通常、翌期首の元入金の計算式は以下のようになります。

(翌期首の元入金) = (期末の元入金) + (青色申告特別控除前の所得金額)
         + (事業主借) - (事業主貸)

または、

(翌期首の元入金) = (翌期首の資産総額) - (翌期首の負債総額)

見るからに下の式の方が簡単ですね。
そこで、この会計ソフトでは、下の式を用います。
即ち、今回作成する元入金の集計サブルーチンは、前々回に作成した勘定科目の残高
集計サブルーチンを呼んだ後に呼ばれる様にします。

それではプログラムの解説です。

1.まず、最初から6行は変数の宣言です。
2.8行目はデータベースのオープン、9行目は科目テーブルのオープン、10行目
  は環境テーブルのオープンを行っています。
3.12行目は勘定科目テーブルの資産科目の残高の合計を計算しています。
4.13行目は勘定科目テーブルの負債科目の残高の合計を計算しています。
5.15行目は環境テーブルのカレントレコードを先頭レコードに移動しています。
6.17行目は科目テーブルのカレントレコードを元入金科目にするため、環境テー
  ブルに設定してある元入金科目IDを用いて検索条件を指定しています。
7.18行目は17行目で作成した検索条件でカレントレコードを移動しています。
  これにより科目テーブルのカレントレコードは元入金科目のレコードになります。
8.19行目は科目テーブルのデータをEditメソッドを用いて更新(残高を更新)で
  きるようにしています。
9.20行目で科目テーブルの残高フィールドに元入金を計算して代入しています。
10.21行目で科目テーブルにデータを更新しています。
11.23行目で環境テーブル、24行目で勘定科目テーブル、25行目でデータベー
  スをクローズしています。

以上で、元入金の集計サブルーチンは完成です。
次回は仕訳データ削除と年度のカウントアップを行います。
______________________________________
◆◇ Q&Aコーナー    ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

 今回はありません。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ ACCESSで作るシリーズ 【会計ソフト編】
◇ 発 行 元  :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
  ご質問等   :y.fukuda@ro.bekkoame.ne.jp

◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
  しています。(まぐまぐID:0000030446)
◇ バックナンバー:http://www.bekkoame.ne.jp/ro/y.fukuda/
◇ 登録・解除  :http://www.bekkoame.ne.jp/ro/y.fukuda/

 Copyright(C) 2000-2001 Yoshihisa Fukuda All rights reserved.

◇転載について
 このメールマガジンの無断転載などは、一切禁止です。
 転載をご希望の方は、事前にメールで連絡をください。
◇免責
 このメールマガジン及びホームページの内容による、いかなる損害、障害などに
 関して発行者は一切の責任を負いません。
 掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□