メールマガジン【アクセスで作るシリーズ】
バックナンバー 【会計ソフト編】 Vol.10
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【会計ソフト編】
発 行 : Yoshihisa Fukuda 2000.06.10 Vol.10
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は勘定科目設定フォーム作成の続きです。
== ◇ 第1章 情報設定 ====================
--------------------------------------
1-4 勘定科目設定
--------------------------------------
--------------------------------------
1-4-2 フォーム作成
--------------------------------------
早速ですが、今回はプログラミングからスタートです。
1.前回のQ&Aにもありましたが、科目IDはシステムで連番を振ります。
(1)フォームを選択して、[挿入前処理]プロパティにカーソルを移動します。
(2)[▼]ボタンで[イベントプロシージャ]を選択し、[...]ボタンでモジュール
ウィンドウを開きます。
(3)そこで次の様にコードを入力しましょう。
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim KamokuIDMax As Variant
KamokuIDMax = DMax("KamokuID", "KamokuTable")
If IsNull(KamokuIDMax) Then
Me![KamokuID] = 1
Else
Me![KamokuID] = KamokuIDMax + 1
End If
End Sub
(4)入力したら右上の[×]ボタンでモジュールウィンドウを閉じます。
これで科目IDの自動連番は完了です。
【解説】
Dim は変数の宣言です。ここでバリアント型の変数として KamokuIDMax を宣言
しています。
DMax関数は最大値を求める関数です。
一度、変数 KamokuIDMax に現在の科目IDの最大値を代入します。
If 文で変数 KamokuIDMax がNullかチェックしています。
勘定科目テーブルのデータが1件も無い時は、DMax関数はNull値を返すので、
その時は科目IDに1を代入します。
そうで無い時は、KamokuIDMax(現在の最大値)+1の値を科目IDに代入します。
勘定科目テーブルは特殊科目を最初に設定しておくので、データが1件も
無い場合はあり得ないのですが、一応処理は入れておきましょう。
※ これだけでは、完璧な欠番の無い連番は振れません。
最終データ削除時の欠番が発生しなくなるだけです。
Access-97では最終データを削除した場合、データベースの最適化を行えば
欠番は発生しないのですが、ここでは、それと同様の機能を実現しています。
Access2000に関して、私の得た情報では最終データの欠番は発生しない様です。
Access-97で最適化をしたのと同じ動作になるのかと思われます。
(定かでは無いので解る方は情報を下さい)
もし、そうならこの処理はAccess2000ではオートナンバーで代用できます。
但し、完璧な欠番回避処理(中間データ削除時の欠番も発生しない)を、全て
が完成した後、第5章 拡張機能 で取り上げる予定でいます。
では、この辺でフォームの動作確認をしてみましょう。
最初に、[テーブル]タブで[KamokuTable]を開いて、特殊科目を設定しておきます。
動作チェックなのでデータは何でも構いません。
試しに以下のようなデータを登録してみます。
______________________________________
KamokuID KamokuCode KamokuName KamokuKind
______________________________________
1 9999 繰越 6
______________________________________
貸借区分~決算書枠番号までは未入力で構いません。
登録したら、[フォーム]タブに戻って、[KamokuSetForm]を[開く]ボタンで実行して
みましょう。
1行目に、今入力した繰越が出力されていますね。
この繰越は特殊科目なので、勘定科目設定のフォームに出てきて修正や削除をされて
はいけません。(科目種別が特殊に関するものは、全てシステムで使用するだけで
表に現れてはいけません)
2.勘定科目設定フォームで特殊科目を表示させないようにする。
(1)[KamokuSetForm]をデザインウィンドウで開きます。
(2)フォームを選択した状態で[レコードソース]プロパティにカーソルを移動
します。
(3)[レコードソース]プロパティが[KamokuTable]になっている事を確認して、
右端の[...]ボタンを押します。
(ここからは、前回の科目種別コンボボックスと同じ要領です)
(4)「テーブルを基にしてクエリービルダーが起動されました。このテーブル
を基にしてクエリーを作成しますか?」と聞かれるので[はい]を選び、
[SQLステートメント:クエリービルダ]というウィンドウを開きます。
(5)上段の[KamokuTable]の[KamokuID][KamokuCode][KamokuName][KamokuKind]
[TaiSyaku][KazeiKubun][ZanDaka][BoxNo]を順番にダブルクリックして、
下段の左側から設定していきます。
(6)下段の[KamokuKind]が設定されている欄の[抽出条件]に[<6]と書きます。
ここで、ついでに表示順の指定も行いましょう。
勘定科目設定は科目コードを昇順で表示します。
(7)下段の[KamokuCode]が設定されている欄の[並べ替え]の所にカーソルを移動
します。
(8)右端の[▼]ボタンを押して[昇順]を選択しましょう。
(9)[クエリービルダ]ウィンドウの[×]ボタンを押して「SQLステートメントの
変更を保存し、プロパティの設定を更新しますか?」と聞かれたら[はい]
を選んで終了します。
では、フォームを上書き保存してから、動作確認をします。
[フォーム]タブで、[KamokuSetForm]を[開く]ボタンで実行しましょう。
さっき出ていた繰越の科目が消えましたか?
勘定科目設定の画面では特殊科目以外の科目は全て登録、修正、削除が行えます。
ちょっと大変かも知れませんが、あと一息です。
頑張って下さい。
最後に、先程、並べ替えを科目コードで昇順に指定しましたが、このままでは入力
したデータは一度フォームを閉じないと科目コードの昇順では表示されません。
そこで、データの再表示(厳密に言うと再クエリーなのですが)をさせるための
ボタンを作ります。
3.[再表示]ボタンの作成。
(1)ツールバーの[コマンドボタン]を選択し、コントロールウィザードを解除
します。(コントロールウィザードはツールバーの矢印の隣にある魔法の棒
の様なボタンで、一度押す毎に設定、解除となります。)
(2)フォームフッターの[閉じる]ボタンの隣にボタンを作成しましょう。
(3)ウィザードを解除しているので、[閉じる]ボタンを作成した時の様なウィザ
ードのウィンドウは出てきません。
ボタンの名称などはプロパティで全て設定します。
(4)作成したボタンを選択し、[名前]プロパティに[ReDisp]、[標題]プロパティ
に[再表示]と設定します。
(5)[クリック時]プロパティに[イベントプロシージャ]を設定し、[...]ボタン
でモジュールウィンドウを開きます。
(6)ここで以下のコードを記述しましょう。
Private Sub ReDisp_Click()
Me.Requery
End Sub
(7)[×]ボタンでモジュールウィンドウを閉じます。
これで、再表示ボタンの完成です。
[再表示]ボタンの動作確認は、科目コードを昇順でなく登録し、[再表示]ボタンで
データが昇順に並べばOKです。
【例】科目データを
______________________________________
KamokuCode KamokuName
______________________________________
0001 科目1
0003 科目3
0002 科目2
______________________________________
と登録し、[再表示]ボタンを押すと
0001 科目1
0002 科目2
0003 科目3
と表示されればOKです。
お疲れさまでした。
これで勘定科目設定は完成です。と言いたい所ですが、実はここでも残件があります。
それは、補助科目設定を呼び出すボタンです。
このボタンを作成するには、補助科目設定がなければならないので、補助科目設定を
作成した後で、補助科目設定を呼び出すボタンを付加しましょう。
--------------------------------------
どうでしたか?
勘定科目設定は、ちょっと大変だったかも知れません。
何が大変かというと、全て文章で伝えなければいけないので、思うように伝わらない
という点です。(これは、ただ単に私の文章能力の問題ですが)
ホームページのサンプルと補足説明(できるだけ書きますので)も活用して下さい。
分からない点は、質問いただければ私もホームページに何を書けばよいかが判ります
ので、遠慮なくメール下さい。
次回は補助科目設定です。
______________________________________
◆◇ ワンポイントコーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
【クエリービルダー】
前回から、クエリーが登場しました。
クエリービルダーの使い方を文章だけで説明するのは非常に困難で、皆様も少し
解りづらいのでは無いかと思います。
何でもそうなのですが、同じ事をやるにも、幾つかの方法(手段)があります。
例えば、今回のクエリービルダーの場合、下段のフィールドに項目を設定する際、
ダブルクリックで行いましたが、ドラッグ&ドロップでもできます。
ダブルクリックでは左側から順番にしか設定できませんが、ドラッグ&ドロップ
なら、好きなところに挿入もできます。
ただ、これがなかなか説明しにくく、簡単なダブルクリックを使用しました。
ヘルプでキーワードに[クエリーのデザイン,]と入れれば説明がありますので、
皆さん、一読してみて下さい。
今後クエリーは何度も登場するので、ヘルプ等で解らない事は、質問して下さい。
______________________________________
◆◇ アンケート終了 ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
アンケートは本日、6月10日を持ちまして終了させて戴きます。
ご協力を戴きました読者の皆様方には、深くお礼を申し上げます。
ありがとうございました。
アンケートは終了しますが、要望などありましたら、いつでもメール下さい。
今後とも、よろしくお願いいたします。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ 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.10 Vol.10
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は勘定科目設定フォーム作成の続きです。
== ◇ 第1章 情報設定 ====================
--------------------------------------
1-4 勘定科目設定
--------------------------------------
--------------------------------------
1-4-2 フォーム作成
--------------------------------------
早速ですが、今回はプログラミングからスタートです。
1.前回のQ&Aにもありましたが、科目IDはシステムで連番を振ります。
(1)フォームを選択して、[挿入前処理]プロパティにカーソルを移動します。
(2)[▼]ボタンで[イベントプロシージャ]を選択し、[...]ボタンでモジュール
ウィンドウを開きます。
(3)そこで次の様にコードを入力しましょう。
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim KamokuIDMax As Variant
KamokuIDMax = DMax("KamokuID", "KamokuTable")
If IsNull(KamokuIDMax) Then
Me![KamokuID] = 1
Else
Me![KamokuID] = KamokuIDMax + 1
End If
End Sub
(4)入力したら右上の[×]ボタンでモジュールウィンドウを閉じます。
これで科目IDの自動連番は完了です。
【解説】
Dim は変数の宣言です。ここでバリアント型の変数として KamokuIDMax を宣言
しています。
DMax関数は最大値を求める関数です。
一度、変数 KamokuIDMax に現在の科目IDの最大値を代入します。
If 文で変数 KamokuIDMax がNullかチェックしています。
勘定科目テーブルのデータが1件も無い時は、DMax関数はNull値を返すので、
その時は科目IDに1を代入します。
そうで無い時は、KamokuIDMax(現在の最大値)+1の値を科目IDに代入します。
勘定科目テーブルは特殊科目を最初に設定しておくので、データが1件も
無い場合はあり得ないのですが、一応処理は入れておきましょう。
※ これだけでは、完璧な欠番の無い連番は振れません。
最終データ削除時の欠番が発生しなくなるだけです。
Access-97では最終データを削除した場合、データベースの最適化を行えば
欠番は発生しないのですが、ここでは、それと同様の機能を実現しています。
Access2000に関して、私の得た情報では最終データの欠番は発生しない様です。
Access-97で最適化をしたのと同じ動作になるのかと思われます。
(定かでは無いので解る方は情報を下さい)
もし、そうならこの処理はAccess2000ではオートナンバーで代用できます。
但し、完璧な欠番回避処理(中間データ削除時の欠番も発生しない)を、全て
が完成した後、第5章 拡張機能 で取り上げる予定でいます。
では、この辺でフォームの動作確認をしてみましょう。
最初に、[テーブル]タブで[KamokuTable]を開いて、特殊科目を設定しておきます。
動作チェックなのでデータは何でも構いません。
試しに以下のようなデータを登録してみます。
______________________________________
KamokuID KamokuCode KamokuName KamokuKind
______________________________________
1 9999 繰越 6
______________________________________
貸借区分~決算書枠番号までは未入力で構いません。
登録したら、[フォーム]タブに戻って、[KamokuSetForm]を[開く]ボタンで実行して
みましょう。
1行目に、今入力した繰越が出力されていますね。
この繰越は特殊科目なので、勘定科目設定のフォームに出てきて修正や削除をされて
はいけません。(科目種別が特殊に関するものは、全てシステムで使用するだけで
表に現れてはいけません)
2.勘定科目設定フォームで特殊科目を表示させないようにする。
(1)[KamokuSetForm]をデザインウィンドウで開きます。
(2)フォームを選択した状態で[レコードソース]プロパティにカーソルを移動
します。
(3)[レコードソース]プロパティが[KamokuTable]になっている事を確認して、
右端の[...]ボタンを押します。
(ここからは、前回の科目種別コンボボックスと同じ要領です)
(4)「テーブルを基にしてクエリービルダーが起動されました。このテーブル
を基にしてクエリーを作成しますか?」と聞かれるので[はい]を選び、
[SQLステートメント:クエリービルダ]というウィンドウを開きます。
(5)上段の[KamokuTable]の[KamokuID][KamokuCode][KamokuName][KamokuKind]
[TaiSyaku][KazeiKubun][ZanDaka][BoxNo]を順番にダブルクリックして、
下段の左側から設定していきます。
(6)下段の[KamokuKind]が設定されている欄の[抽出条件]に[<6]と書きます。
ここで、ついでに表示順の指定も行いましょう。
勘定科目設定は科目コードを昇順で表示します。
(7)下段の[KamokuCode]が設定されている欄の[並べ替え]の所にカーソルを移動
します。
(8)右端の[▼]ボタンを押して[昇順]を選択しましょう。
(9)[クエリービルダ]ウィンドウの[×]ボタンを押して「SQLステートメントの
変更を保存し、プロパティの設定を更新しますか?」と聞かれたら[はい]
を選んで終了します。
では、フォームを上書き保存してから、動作確認をします。
[フォーム]タブで、[KamokuSetForm]を[開く]ボタンで実行しましょう。
さっき出ていた繰越の科目が消えましたか?
勘定科目設定の画面では特殊科目以外の科目は全て登録、修正、削除が行えます。
ちょっと大変かも知れませんが、あと一息です。
頑張って下さい。
最後に、先程、並べ替えを科目コードで昇順に指定しましたが、このままでは入力
したデータは一度フォームを閉じないと科目コードの昇順では表示されません。
そこで、データの再表示(厳密に言うと再クエリーなのですが)をさせるための
ボタンを作ります。
3.[再表示]ボタンの作成。
(1)ツールバーの[コマンドボタン]を選択し、コントロールウィザードを解除
します。(コントロールウィザードはツールバーの矢印の隣にある魔法の棒
の様なボタンで、一度押す毎に設定、解除となります。)
(2)フォームフッターの[閉じる]ボタンの隣にボタンを作成しましょう。
(3)ウィザードを解除しているので、[閉じる]ボタンを作成した時の様なウィザ
ードのウィンドウは出てきません。
ボタンの名称などはプロパティで全て設定します。
(4)作成したボタンを選択し、[名前]プロパティに[ReDisp]、[標題]プロパティ
に[再表示]と設定します。
(5)[クリック時]プロパティに[イベントプロシージャ]を設定し、[...]ボタン
でモジュールウィンドウを開きます。
(6)ここで以下のコードを記述しましょう。
Private Sub ReDisp_Click()
Me.Requery
End Sub
(7)[×]ボタンでモジュールウィンドウを閉じます。
これで、再表示ボタンの完成です。
[再表示]ボタンの動作確認は、科目コードを昇順でなく登録し、[再表示]ボタンで
データが昇順に並べばOKです。
【例】科目データを
______________________________________
KamokuCode KamokuName
______________________________________
0001 科目1
0003 科目3
0002 科目2
______________________________________
と登録し、[再表示]ボタンを押すと
0001 科目1
0002 科目2
0003 科目3
と表示されればOKです。
お疲れさまでした。
これで勘定科目設定は完成です。と言いたい所ですが、実はここでも残件があります。
それは、補助科目設定を呼び出すボタンです。
このボタンを作成するには、補助科目設定がなければならないので、補助科目設定を
作成した後で、補助科目設定を呼び出すボタンを付加しましょう。
--------------------------------------
どうでしたか?
勘定科目設定は、ちょっと大変だったかも知れません。
何が大変かというと、全て文章で伝えなければいけないので、思うように伝わらない
という点です。(これは、ただ単に私の文章能力の問題ですが)
ホームページのサンプルと補足説明(できるだけ書きますので)も活用して下さい。
分からない点は、質問いただければ私もホームページに何を書けばよいかが判ります
ので、遠慮なくメール下さい。
次回は補助科目設定です。
______________________________________
◆◇ ワンポイントコーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
【クエリービルダー】
前回から、クエリーが登場しました。
クエリービルダーの使い方を文章だけで説明するのは非常に困難で、皆様も少し
解りづらいのでは無いかと思います。
何でもそうなのですが、同じ事をやるにも、幾つかの方法(手段)があります。
例えば、今回のクエリービルダーの場合、下段のフィールドに項目を設定する際、
ダブルクリックで行いましたが、ドラッグ&ドロップでもできます。
ダブルクリックでは左側から順番にしか設定できませんが、ドラッグ&ドロップ
なら、好きなところに挿入もできます。
ただ、これがなかなか説明しにくく、簡単なダブルクリックを使用しました。
ヘルプでキーワードに[クエリーのデザイン,]と入れれば説明がありますので、
皆さん、一読してみて下さい。
今後クエリーは何度も登場するので、ヘルプ等で解らない事は、質問して下さい。
______________________________________
◆◇ アンケート終了 ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
アンケートは本日、6月10日を持ちまして終了させて戴きます。
ご協力を戴きました読者の皆様方には、深くお礼を申し上げます。
ありがとうございました。
アンケートは終了しますが、要望などありましたら、いつでもメール下さい。
今後とも、よろしくお願いいたします。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ 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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□