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


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

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

    発 行 : Yoshihisa Fukuda          2001. 1.20 Vol.40

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


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

今回は年度更新の補助科目残高集計サブルーチンの作成です。

--------------------------------------
4-1 年度更新
--------------------------------------
--------------------------------------
4-1-2 モジュール作成
--------------------------------------
補助科目の残高集計サブルーチンを作成します。

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

  Dim ACC_DB As Database
  Dim SubKamo_T As Recordset
  Dim KamokuKind As Integer
  Dim KariTotal As Currency
  Dim KasiTotal As Currency
  Dim FindDate As String
  Dim FindStr As String
  
  FindDate = "DenpyoDate >= #" & DLookup("AccountStart", "BaseTable") & _
   "# AND DenpyoDate <= #" & DLookup("AccountEnd", "BaseTable") & "# AND "
  
  Set ACC_DB = CurrentDb
  Set SubKamo_T = ACC_DB.OpenRecordset("SubKamokuTable", dbOpenDynaset)

  SubKamo_T.MoveFirst
  
  While SubKamo_T.EOF = False
    KamokuKind = DLookup("KamokuKind", "KamokuTable", "KamokuID = " & _
               SubKamo_T.Fields("ParentKamoID"))
    If KamokuKind < 4 Then
      SubKamo_T.Edit
      FindStr = FindDate & "KasiKamoID <> 1 AND KariKamoID = " & _
      SubKamo_T.Fields("ParentKamoID") & " AND KariSubKamoID = " & _
      SubKamo_T.Fields("SubKamokuID")
      KariTotal = Nz(DSum("KariAmount", "SiwakeTable", FindStr), 0)
      
      FindStr = FindDate & "KariKamoID <> 1 AND KasiKamoID = " & _
      SubKamo_T.Fields("ParentKamoID") & " AND KasiSubKamoID = " & _
      SubKamo_T.Fields("SubKamokuID")
      KasiTotal = Nz(DSum("KasiAmount", "SiwakeTable", FindStr), 0)
  
      If KamokuKind = 2 Then
        SubKamo_T.Fields("ZanDaka").Value = _
        Nz(SubKamo_T.Fields("ZanDaka").Value) - KariTotal + KasiTotal
      Else
        SubKamo_T.Fields("ZanDaka").Value = _
        Nz(SubKamo_T.Fields("ZanDaka").Value) + KariTotal - KasiTotal
      End If
      SubKamo_T.Update
    End If
    SubKamo_T.MoveNext
  Wend
  
  SubKamo_T.Close
  ACC_DB.Close

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

【解説】

1.まず、最初から7行は変数の宣言です。
2.9、10行目は仕訳データ抽出条件の日付範囲の条件式(SQL)です。
3.12行目はデータベースのオープン、13行目は補助科目テーブルのオープン
  を行っています。
4.15行目は補助科目テーブルのレコードセットをMoveFirstメソッドを用いて
  カレントレコードを先頭に移動しています。
5.17行目から42行目のWhile文の中は勘定科目テーブルを先頭から1レコード
  づつ最終レコードまで処理するループです。
6.18、19行目は補助科目の親科目の科目種別を獲得しています。
7.20行目の If文は科目種別が3以下(資産・負債・資本)の科目のみ集計する
  ためのIf文です。
8.21行目は補助科目テーブルのデータをEditメソッドを用いて更新(残高を更新)
  できるようにしています。
9.22、23、24行目で借方金額を集計するための仕訳データの抽出条件を指定
  しています。
10.25行目で借方金額を集計しています。
11.27,28、29行目で貸方金額を集計するための仕訳データの抽出条件を指定
  しています。
12.30行目で貸方金額を集計しています。
13.33、34行目で負債に関する残高計算を、36、37行目で資産・資本に
  関する残高計算を行っています。
14.39行目で補助科目テーブルにデータを更新しています。
15.41行目で補助科目テーブルのカレントレコードをMoveNextメソッドを用いて
  次のレコードへ移動しています。
16.44行目で勘定科目テーブルをクローズ、45行目でデータベースをクローズ
  しています。

基本的には、勘定科目の残高集計と同様です。

以上で、補助科目の残高集計サブルーチンは完成です。
次回は元入金の集計サブルーチンを作成します。
______________________________________
◆◇ ワンポイントコーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

 【モジュールの表示形式】

 今回も、前回に引き続きモジュールを作成しました。
 そこで、モジュールウィンドウに関して、少し触れておきます。

 皆さんはモジュールウィンドウの左下を見て下さい。
 横スクロールバーの左側に2つのボタンがありますね。

 左側は3本ほど横棒が並んでいて、右側は5本ほど横棒が並んでいます。
 デフォルトは、右側のボタンが押された状態だと思います。

 では、左側のボタンを押して見ましょう。
 モジュール(サブルーチン)の表示方法が変わりましたね。
 左側のボタンでは、1つのプロシージャのみ表示されます。

 次に、右側のボタンを押して見ましょう。
 右側のボタンでは全てのモジュールが連続して表示されます。
 プロシージャの境目は、線で仕切られています。

 プロシージャはモジュールウィンドウの上右側のコンボボックスで選択する事が
 できます。
 また、上左側のコンボボックスでは、オブジェクトが選択できます。

 皆さんの好みで使いやすい方を選んで下さい。
______________________________________
◆◇ Q&Aコーナー    ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

Q1.
 実務に利用する立場でないため実データを持ってシステムを検証することが出来
 ません。
 恐縮ですが残高試算表及び青申決算書フォームの印刷ボタンの単独テスト方法に
 つきアドバイス願えませんでしょうか。
 また簡単に実務での利用方法・手順についても御開示願えれば幸甚です。
A1.
 会計ソフトも大分形になり、今まで作成してきた部分が正しいか、皆さんも気に
 なる所だと思います。
 そこで、簡単なサンプルを作成して、テストデータとしてダウンロード出来るよう
 にしたいと思うのですが、昨年より、非常に忙しい状態が続いており、今すぐには
 出来ません。(青色申告もやらなければならないのですが)
 少し、時間に余裕ができたら、サンプルデータを作成したいと思いますので、
 しばらくお待ち下さい。
 ※ 但し、以前にも書いたのですが、私も会計は素人なので、自分に関係する仕訳
   しか判りませんので、サンプルは簡単な物になると思います。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ 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.

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