メールマガジン【アクセスで作るシリーズ】
バックナンバー 【会計ソフト編】 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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□