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


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

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

    発 行 : Yoshihisa Fukuda          2000.06.24 Vol.12

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

今回は勘定科目設定でやり残した部分をやりましょう。

== ◇ 第1章 情報設定     ====================

--------------------------------------
1-4 勘定科目設定
--------------------------------------
勘定科目設定でやり残した部分は、補助科目設定の呼び出しボタンの作成です。

--------------------------------------
1-4-2 フォーム作成(続き)
--------------------------------------
それでは、以前に作成した勘定科目設定のフォームをデザインウィンドウで開きま
しょう。

1.補助科目設定の呼び出しボタンの作成。
 (1)決算書枠番号の右側を補助科目設定の呼び出しボタンが入る位、開けます。
   (フォームの右端にカーソルを持っていくと縦棒に左右の矢印が付いた様な
    形にマウスカーソルが変わるので、その時にクリックして左右に動かせば
    サイズが変えられます)
 (2)ツールバーの[コマンドボタン]を選択し、コントロールウィザードを解除
    しないで、決算書枠番号の右側のボタンを作成する辺りをクリックします。
 (3)コマンドボタンウィザードで[種類]を[フォームの操作]、[ボタンの動作]を
    [フォームを開く]にして[次へ]を押します。
 (4)[コマンドボタンを使って開くフォームを選択して下さい]の所で、
    [SubKamokuSetForm]を選択し[次へ]を押します。
 (5)次の画面で[特定のレコードを表示する]を選んで[次へ]を押します。
 (6)次の画面では左側に[KamokuSetForm]として勘定科目設定のテーブルの項目
    が、右側には[SubKamokuSetForm]として補助科目設定のテーブルの項目が
    表示されたリストボックスがあります。
    ここで、[KamokuSetForm]のリストボックスの[KamokuID]を選択し、次に
    [SubKamokuSetForm]のリストボックスの[ParentKamoID]を選択して、その
    中間にある[<->]ボタンを押します。
    そして、下の[関連付けるフィールド]の所に[KamokuID<->ParentKamoID]
    と表示されたのを確認したら[次へ]を押します。
 (7)ボタンに表示する文字列、またはピクチャで[文字列]を選択し、文字列に
    「補助」と入力したら[次へ]を押します。
 (8)[ボタン名]を[SubKamoBtn]として[完了]ボタンを押します。

以上で、補助科目設定の呼び出しボタンができました。
早速、実行してみましょう。
勘定科目設定を[開く]で実行してみます。
皆さんの勘定科目設定は、Vol.10 で設定した科目1、科目2、科目3がありますね。
では、科目1の[補助]ボタンを押してみましょう。
補助科目設定のウィンドウが開きましたか?

では適当に補助科目を設定してみましょう。
[再表示]ボタンのチェックも兼ねて、次のようなデータを設定してみましょう。
______________________________________
補助科目コード  補助科目名   残高
______________________________________
01        補助科目1   \100
03        補助科目3   \50
02        補助科目2   \30
______________________________________
ここで[再表示]ボタンを押して、1、2、3の順番に並び変わればOKです。

では補助科目設定を閉じましょう。
すると、勘定科目設定の科目1の期首残高に\180と表示されていますね。
これで、期首残高の設定もOKです。

では次に、科目2の[補助]ボタンを押してみましょう。
当然、先程入れた補助科目1~3は表示されません。
押した[補助]ボタンの科目に対する補助科目だけが表示されるのです。

では、この補助科目設定はそのまま閉じて、勘定科目設定で4行目の新規入力行の
[補助]ボタンを押してみましょう。
すると、最初に設定した補助科目1~3が出てきてしまいます。
これはまずいですね。
新規入力行では、補助科目設定のウィンドウを呼び出さない様にしましょう。

2.新規入力行の補助科目設定ボタンの無効化。
 (1)再び、勘定科目設定のフォームをデザインウィンドウで開き、先程作成した
    補助科目設定ボタンを選択します。
 (2)[クリック時]プロパティにカーソルを移動し、[...]ボタンを押して
    モジュールウィンドウを開きます。
 (3)以下のようにコードを追加しましょう。

    Private Sub SubKamoBtn_Click()
    On Error GoTo Err_SubKamoBtn_Click

      Dim stDocName As String
      Dim stLinkCriteria As String

      ここから追加する
      If Me.NewRecord = True Then
        Exit Sub
      End If
      ここまで追加する

      stDocName = "SubKamokuSetForm"

 (4)コードが追加できたら[×]ボタンでモジュールウィンドウを閉じて終了し
    フォームも上書き保存したら終了します。

 【解説】
  カレントレコードが新規入力行かを判断するには、[NewRecord]プロパティを
  使用します。
  [NewRecord]プロパティが[True]なら新規入力行です。
  Exit はプロシージャを抜ける命令です。Exit Sub は、関数を抜ける(終わる)
  と言うことになります。
  If 文で、新規入力行だったら Exit Sub で SubKamoBtn_Click の関数を
  抜けるようにしました。

これで、もう一度勘定科目設定を実行し、新規入力行にある[補助]ボタンを押して
みましょう。
今度は、補助科目設定ウィンドウは開きませんね。

--------------------------------------
以上で、勘定科目設定も出来上がりました。

次回は勘定科目設定が無いとできなかった、環境設定の各種科目のコンボボックス
の設定を行います。
______________________________________

◆◇ ワンポイントコーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

【フォームの呼び出し】

 今回、また新たに、他のフォームを呼び出すという事をやりました。
 補助科目設定の呼び出しの場合、親科目の勘定科目に付随する補助科目だけを処理
 の対象として、補助科目設定を呼び出しましたが、全てのデータを対象にフォーム
 を呼び出す場合もあります。
 その場合1.(5)の所で[特定のレコードを表示する]を選択しないで
 [全てのレコードを表示する]を選択します。

 また、特定のレコードを表示する方法として、クエリーを使う方法も有ります。
 補助科目設定のフォームのレコードソースを[SubKamokuTable]ではなく、クエリー
 にして、親科目IDの抽出条件に勘定科目設定の科目IDを指定する方法です。

 では、今回の方法は、どうやって特定のデータを抽出したのでしょうか?
 [補助]ボタンの[クリック時]プロパティのコードを見てもらえば、ある程度解ると
 思うのですが、フォームの呼び出し時に、パラメータとして抽出条件を与えている
 のです。
 DoCmd.OpenForm stDocName, , , stLinkCriteria
 の stLinkCriteria が抽出条件のパラメータです。

 同じ事をやるにしても何通りかの方法がありますが、どちらが良いかを考えると、
 クエリーを使用すると、この補助科目設定は必ず親科目に付随する補助科目が処理
 データの対象となってしまいますが、フォーム呼び出し時のパラメータで抽出の
 指定を行うと、呼び出し元でその都度違う条件で呼び出せます。
 呼び出されるフォームは抽出条件を意識しなくて良いのです。
 この方が融通性があって良いですね。

 この他にも、フォームの呼び出し時には、色々なパラメータがあります。
 例えば、新規入力だけ(修正不可)で使いたい時、または修正モードだけ(新規
 入力不可)で使いたい時など、それぞれパラメータで指定ができます。
 この辺も、後々に使える所があれば使ってみたいと思います。
______________________________________
◆◇ Q&A        ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

Q1.
 「勘定科目設定フォームが閉じられているかまたは存在しない」というメッセージ
 が出てきます。(データの試入力時)
A1.
 この件に関しましては、私のミスで、前回のVol.11の[再表示]ボタンのチェックの
 所で、テストができるような書き方をしてしまいました。
 実際は補助科目設定は勘定科目設定から呼び出されるため、今回の[補助]ボタンで
 呼び出さないと正常に動きません。
 今回の[補助]ボタンから呼び出して動作チェックをして下さい。

Q2.
 Vol.10 及び Vol.11 で、幾つかの似たような質問がありました。
 内容としては、[再表示]ボタンのテストをするため、データを登録使用として
 2件登録したところで、3件目にレコード移動しようとしたとき
 「インデックス、主キー、などの値が重複して登録できない」という旨のエラー
 メッセージが出るというものでした。
A2.
 これは、科目ID または補助科目ID の自動連番付加プログラムが正しく機能して
 いない場合に発生します。
 科目ID や補助科目ID は主キーなので必ずユニーク(重複しない)なデータで
 なくてはならず、自動連番付加プログラムが正しく機能しないとユニークなデータ
 が振られないからです。

______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ 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 Yoshihisa Fukuda All rights reserved.

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