![]() |
家計簿をつくろう (第2部) | ![]() |
メニューへ へ戻る |
§1 | 家計簿をつくりたい |
§2 | 家計簿の考え方と設計の基本 | |
§3 | .家計簿の進め方とメインパネル | |
§4 | .ACCESSの基本操作とメインパネルの操作 | |
§5 | 補助簿の項目見直しとマスタの作成 | |
§6 | 費目マスタと摘要マスタ 作業中のメール往来1 | |
§7 | インポートの活用 費目ますたと摘要マスタ 作業中のメール往来2 | |
§8 | 費目マスタと摘要マスタの完成 &練習帳 | |
§9 | 家計簿のデータ入力 家計簿のデータ入出力設計 |
|
§10 | 家計簿データ日常処理(ウィザード) | |
§11 | 家計簿データ日常処理1(カストマイズ 整形) |
KLのヒデ様 家計簿のデータ入力
家計簿のデータ入出力設計
kakeisub(1.06).mdb 対象ファイル:T_摘要マスタ、Q_摘要マスタ、F_摘要マスタ、R_摘要マスタ、R_摘要マスタ一覧表、
M_摘要マスタ、メインパネル(Ver1.06)
|
家計簿のデータ入力 (MM家計簿06.docの抄)
いよいよメインテーマ:世界でたった一つのMy家計簿の「データ入力の設計」に入ります。
家計簿そのものは分かり易い単純な用務ですが、費目マスタの設計に比べてかなり高度な技法も含まれています。
My家計簿をとおして、データベースとはなにかが理解でき、またその豊富な機能を駆使して、さまざまな表現が
できる面白さも体得できるでしょう。
この段階をクリアすれば、顧客管理、売上処理、会計処理などビジネス的な実務でも応用ができます。
1.基礎講座2 MM家計簿06.doc
2.家計簿入出力の設計
MM家計簿07.doc
3.家計簿日常処理の実務 MM家計簿08.doc 未
4.家計簿日月間・年間処理の実務 MM家計簿10.doc 未
1.基礎講座2
家計簿の入出力の設計に先立ち、リレーション、フォーム/サブフォームなど家計簿に必要な基礎知識を学習する。
1.1 データベースの構造
データベース(ACCESS)のデータの記録・保存のしくみは、表計算データ(EXCELなど)と比べると理解しやすい。
1.1.1 表計算とデータベースの比較
住所禄(丁目・番地、名前などは省略)を例にとる。
1.表計算のデータ形式
表計算の住所禄データは図1のような表(スプレッドシート)で表示される。
表には、4行(4件)のデータがあり、各行には都道府県〜市区〜町村がそれぞれフルネームで表示されていてる。
表の一部に空白のセルはなく、各行は住所情報として完結している。
図1表計算表(Excel)のデータ形式
都道府県 |
市区 |
町村 |
東京都 |
目黒区 |
自由が丘 |
2.ACCESSのデータ形式
ACCESS住所録データは図2のイメジーように、データが「都道府県」、「市区」、「町村」、3つに区分されている。
データは4件あるが、都道府県は「東京都」が1件、市区は「目黒区」と「世田谷区」は各1件のみが表示されている。
「町村」からみると第2行目と第4行目の”同上”の意味にあたる「市区」は省かれている。
同様に同じ「市区」に対する「都道府県」は「東京都」は”同上”が省かれている。
ここでは、各行を横(例:2行目)をみても上の行を参照しないと必要な情報が一覧できない。
図2 Accessのデータ形式のイメージ
都道府県 |
市区 |
町村 |
東京都 |
目黒区 |
自由が丘 |
1.1.2 ACCESSのデータ構造の特徴
(1)Excel
Excelのデータ形式は、1つの表(スプレッドシート)のなかに全ての情報をもつからデータへのアクセスは1回で済む。
Excelでは通常、1枚の表でデータの入力にも出力にも併用される。
表計算形式は分かり易く、操作効率は高いといえよう。
(2)Accessの特徴
データベース=正確にいえば、リレーショナルデータベ−ス(RDB)=のデータは機能・役割に応じて分化されている。
表計算形式に比べ、一見複雑な構造であるが個々のデータの構造はシンプルで、どのオブジェクトからも利用ができる。
一方、出力系では図2の住所禄を行列にバラバラに印刷しても使いずらい。
見やすくするために、表形式に変換する操作が増える。
1.データを保存するテーブルとそれを利用するアプリケーション(応用プログラム)であるフォーム・レポートが分離している。
2.テーブルのデータは、重複したデータを排除し、必要に応じては独立して機能する複数のテーブルに分割さる。
それぞれのテーブルは独立しているが、関連するテーブル間はリレーショ ンという「キー」で連結されている。
3.テーブルは共有化され他のアプリケーションから利用される。
1.2 リレーション
1.2.1 テーブルとキーの結合
図2:住所録の実際は、「都道府県」、「市区」、「町村」の3つの独立したテーブル)に分割されていて、これをリレーションで
結合すると図2-1のようになる。
テーブル1とテーブル2を結合するのがキー1(都道府県コード)、またテーブル2とテーブル3を結合するのが
キー2(市区コード)のように相互に共有のキーを保有している。
例えば、都道府県は市区のキー情報を、また市区は都道府県のキー情報を持っている。
図2-1:テーブルの結合
|
|
|
||||||
キー1 都道府県コード |
キー2 市区コード |
|
リレーションはテーブル間とは限らない。キーを設定しテーブルとテーブル、テーブルとクエ リ−、クエリーとクエリーと
結合もできる。
また、キーを結合すれば複数のテーブル、クエリー間も関連性が設定できる。
1.2.2 リレーションシップの種類
テ−ブル・クエリー間に設定する結合などの関連付けをリレーションシップという。
2つのテーブルを結合するとき、それぞれテーブルで定義したインデックキーを持つレコードの発生が1件(キーの重複なし)か
複数件(キーの重複あり)かを常に念頭に置く必要がある。
リレーションシップの種類を結合を間違えるとデータが正しく表示されないからの特に注意する
リレーションシップは、2つのテーブルの組合せにより次の4種類がある。
親レコード 対 子レコード (略称) |
1件 1件 (1 : 1) 1件 複数件 (1 : n) 複数件 1件 (n : 1) 複数件 複数件 (m : n) |
注:テーブル一行のデータをレコードという。
1.1対 1(1 : 1)
親レコードと子レコードのデータの発生がそれぞれ親1件に対して子も1件の関係。
どちらかというと例外的なリレーションで通常余り使われない。
本来、1つのテーブルで済むところを意識的に2つに分ける場合がある。
例えば、テーブルの定義(項目)範囲が広く、データ量が多いときなど、
分割するとファイルの管理が容易になる。
MM家計簿では、1対1 の関連付けは発生しない。
2.1 対 多(1 : n) 多 対 1(n : 1)
親子のデータの発生が、親1件に対して子は複数件の関係。
「多 対 1」 は逆に置き換えれば子:親の関係になりリレーションの意味・操作は「1 対 多」に同じである。
最も頻出するリレーション。
MM家計簿の入力は1:nの関係で設計する。
3.多 対 多(m : n)
親レコードは複数件(m)発生し、対して子レコードも複数件(n)発生する。
実務のなかで、親・子とも複数件存在する事象は以外に多い。
m:nのデータの扱いは複雑で難解である。
MM家計簿でこの関係は発生しない。
1.2.3 リレーションシップの設定
ここでは、リレーションシップの設定の概要を、下図2-2家計簿の例で示す。
設定の具体的な操作は、3.家計簿データ日常処理の実務で説明する。
@メニューバー:ツール(T)〜リレーションシップ(R)(または、ツールメニューから直接リレーションシップ)〜テーブル表示ダイアログボックスから 対象テーブル/クエリーを選択する。 A2つのテーブルに共有なキーをマウスをドラグさせ線で結ぶ。 B画面に表示されるリレーションシップダイアログボックスで、参照整合性、フィールドの連鎖更新と連鎖削除など必要な項目 をチェックオン(レ)する。 |
図2-2 リレーションシップ 家計簿
テーブル/クエリ(T) リレーションシップ テーブル/クエリ(R) |
|||||||||
[OK]
リレーションの種類 1 体 多 |
1.3 フォームの特徴・用途
MM方式ではフォームの機能を活用し、テーブル・クエリで直接データは操作しない。
常に、フォームをインターフェースとしてテーブルを更新・参照する。
1.3.1 連結/非連結フォーム
1.連結フォーム・・・・テーブル/クエリをレコードソースとしたフォーム多くのフォームは連結フォームである。
例: |
|
|
↑ レコードソース | |
|
|
↑ レコードソース | |
|
2.非連結フォーム・・・・レコードソースを持たない単独のフォーム。
例1:メインパネルのようなコントロールパネル
例2:ダイアログボックスのようなパラメータを入力する応答式画面
1.3.2 フォーム/サブフォーム
1.フォーム・・・・ウイザードで、単票形式、表形式のいずれかの選択を問わず単体で構成されるフォーム
例:F_費目マスター、F_適用マスタ
2.フォーム/サブフォーム・・・・フォームのなかに別のフォームを表示する親子形式のフォーム
一つの処理にリレーションで結ばれた二つのフォームが必要なとき、フォーム/サブフォームを選択する。
どちらのフォームも単体でみれば作成方法も機能も同じである。
下例の家計簿のほか、売上伝票のような特定の顧客(フォーム:単票形式)に複数の商品(サブフォーム:表形式)がある。
家計簿
|
1.3.3 入力効率と省力
フォームの豊富な機能を活用し、入力ミスを防止、効率よい入力方式、入力時間の短縮などをはかると同時に、使い易いデザインの
フォームを作成する。
例1.プロパティの設定を変更
2.直接値(例、"食費")を入力せず、予め作成したコンボボックスの一覧表から選択
3.入力範囲を定め、エラーに対して適切な対応(入力検査)
4.フィールドにより、漢字や英数字の選択を自動化
5.「入力」用、「修正」用、「参照」用などの必要に応じてフォームを多様化
2.家計簿データ入出力の設計 (MM家計簿07.docの抄)
家計簿は企業会計とは目的や管理のレベルが違う。
家計簿に求める機能は単純でよく、技巧的な処理は要らないと考える。
例えば、費目体系自体もラフだから、予算・実績対比も微細にわたり集計してもあまり意味がない。
また、グラフ化など視覚的に分かり易いが管理的な有効性はそれほどのことはない。
必要ならEXCELでグラフ編集したらよい。
家計簿では、ライフサイクルを考えながら長期にわたり収支の傾向を把握すれば充分だろう。
家計簿の業務形態は、日常処理(Daily)、月間処理(Monthly)、年間処理(Yearly)がある。
作業予定:
今回・・・・日常処理 |
2.1 入出力の設計の選択
デイリィー業務の入出力設計の選択枝を検討する。
2.1.1 家計簿の入力項目構成
家計簿の入力項目とフォームレイアウトを考慮した実例を次頁3.に示す。
1. 家計簿の入力項目
家計簿の入力項目は常識に従うが、できるだけ類似項目は共通化する。
MM家計簿では「共通化1」のレベルを採用する。
(1)全入力項目・・・・収支 5*2 10項目
収入 支出 |
伝票番号 日付 費目 金額 摘要 伝票番号 日付 費目 金額 摘要 |
(2)共通化1・・・・収支 6項目
伝票番号 日付 費目 収入金額 支出金額 摘要 |
(3)共通化2・・・・収支 5項目
伝票番号 日付 費目 金額 摘要 |
2.フォームレイアウト
MM家計簿では、まとめてn件処理できる表形式でもできるが、日単位に複数件処理する「単票形式 + 表形式」を選択する。
EXCEL | 表形式 |
ACCESS |
@表形式 n件処理 |
3.ACCESSによる入力フォームの実例
B単票形式 + 表形式(日単位 n件処理)
伝票番号 0001 (単票形式) |
2.1.2 画面構成と入出力機能
入出力機能には、ウィザード自動作成と自動作成後の自己改造の方法がある。
MM家計簿では原則とてウィザードによる。
更新機能は、自動作成された移動ボタン(ナビゲータ)による[新規]、[修正]、レコードセレクタによる[削除]のほか、
[閉じる]を加える。
2.2 日常処理
家計簿日常処理のフォーム/サブフォー:F_家計メイン/F_家計明細を中心としたテーブル〜クエリ〜フォーム・レポート(略)
およびリレーションの概念を示す。
(1)テーブル〜クエリ〜フォーム
完成済み 完成済み
|
2.2.1 入力系
入力フォームは一つで更新、参照兼用とする。
具体的な実務展開は、3.家計簿データ日常処理の実務 で行う。
☆項目編成・・・・共通1のレベル
☆単票形式 + 表形式・・・・1日単位で明細複数件
☆更新機能・・・・ウィザードに[閉じる]ボタンを追加
ポイント
1. 伝票番号と明細番号は、「オートナンバー」による自動設定
2. 日付は、基準日に対して[+][−]方式で自動取得
3. 費目はコード入力で、費目名取得
4. 摘要は、必要に応じて登録用語を取得
家計簿日常データ入出力画面 F_家計メイン F_家計明細票
▲ レコードセレクタ |
伝票番号 [ ]
[閉じる] |
||||
移動ボタン ▲ ▲| |▲ ▲ ▲* |
2.2.2 出力系
入力データの範囲でレポートなど出力は自由に作成できるが、必要最小限にとどめる。
具体的な実務展開は、3.家計簿データ日常処理の実務 で行う。
2.3 月間処理 次回 MM家計簿10.doc
月間集計・推移 画面表示・印刷 パラメータ画面から月日指定 |
2.4 年間処理 次回 MM家計簿11.doc
年間集計 画面表示・印刷 パラメータ画面から年月指定 前年度比較 〃 〃 〃 〃 |
KLのヒデ様 家計簿データ日常処理(ウィザード)
3.家計簿データ日常処理の実務 (MM家計簿08.docの抄)
MM方式では、オペレーターにとってインターフェースとなるオブジェクトは「フォーム」に限定している。
オペレータが直接、「テーブル」や「クエリ」を操作することはない。
入力・出力がスムースにできるよう、特に入力フーォムのカストマイズに注力する。
今回は、日常家計データ入力のウィザードによる荒削段階までとする。
カストマイズによる仕上段階は、次回 MM家計簿081.docの予定。
家計簿の全体構成は、2.2 日常処理 図テーブル〜クエリ〜フォーム 参照
§1 入力系 F_家計メイン、F_家計明細
3.1 テーブル MM家計簿08.doc
3.2 クエリの作成
3.3 フォームの作成
3.3.1 荒削(ウィザード)
3.3.2 仕上(カストマイズ) MM家計簿081.doc 予定
§2 出力系 MM家計簿09.doc 予定
3.4 F_家計明細表
3.5 F_日計表
3.6 R_家計明細表
§1 入力系
F_家計メインとF_家計明細を合成し、一体のフォーム/サブフォーム形式のF_家計メインを作成する。
テーブル、クエリは定石どおりの手順で作成、フォームは荒削と仕上2段階にわける。
3.1 テーブル
3.1.1 テーブルの作成
1.T_家計メイン
フィールド データ型 フィールド インデックス |
伝票番号 オートナンバー 長整数型 はい(重複なし) |
1. T_家計明細
フィールド データ型 フィールド インデックス 書式 |
伝票番号 整数型 長整数型 はい(重複あり) |
3.1.2 リレーションの操作
完成は、図3-1 リレーションシップ 参照。
@ツールバー:リレーションシップ〜リレーションシップ(R)〜テーブルの表示を選択する。 注 * |
注 *または、メニューバー:ツール(T)〜リレーション(R)を選択する。
図3-1 リレーションシップ
3.2 入力用クエリの作成
Q_費目マスタを参考に自分で作成する。
1.Q_家計メイン 図3-2Q_家計メイン (略)
☆ソース:T_家計メイン 並べ替え 伝票番号
2.Q_家計明細 図3-3Q_支払い明細 (略)
☆ソース:T_家計明細 T_費目マスタ 並べ替え 伝票番号
3.3入力用フォームの作成
フォームは、先ずF_家計メインとF_家計明細を個別に作成し、次に2つのフォームを合体させ
フォーム/サブホーム:F_家計メインを組み立てる。
3.3.1荒削り(ウィザード)
F_費目マスタを参考に自分で作成する。
§単一フォームを作成段階
オブジェクト;フォームから「ウィザイードを使用してフォームを作成する」クリックする。
1.F_家計メイン
|
2. F_家計明細
* ソース Q_家計明細 * 選択フィールド 全ての項目 * フォームレイアウト 表票形式(T) * スタイル 標準 *ファイル名 F_家計明細 |
§合成フォームを作成段階
フォームの合成にはいくつかの方法があるが最も分かりやすい手順を示す。
完成は、図3.5 F_家計メイン(フォーム/サブフォーム) 参照
@F_家計メインをデザインモードで開く。 ポイント ハンドル操作でサイズを小さく画面の右側半分によせる。 境界線を下方に「詳細」の広げる。図3-4 サブフォーム挿入 参照 AF_家計明細をマウスでドラグしてF_家計メインに挿入する。 ポイント F_家計明細 はF_家計メインの「詳細」の下方部分にドロップする。 図3-5 サブフォーム挿入 参照 BF_家計明細のプロパティで2つのフォームがリンクされ合成一体化されていることを確認する。 F_家計明細フォームプロパティ
C実行モードからテストデータを入力する。 例:日付 [01/9/1] 費目コード [10] 収入金額 [123,000] ポイント T_家計メイン T_家計明細を開きデータを確認する。 |
図3-2 Q_家計メイン (略)
図3-3 Q_家計明細 (略)
図3-4 サブフォームを挿入(F_家計明細→F_家計メイン)
図3-5 F_家計メイン(フォーム/サブフォーム)
以上、荒削段階までの作業が完了したら修正オブジェクトのMDB:Kakeisub(1.08).mdbをメール送信してください。
KLのヒデ
操作上ちょっとした所で引っかかる。アクセス操作に関してはワープロの初歩と同レベルか? 日本語ソフトでアルファべット、ひらがな入力の切り替え?
カタカナの半角、全角の切り替え?マウス操作の左クリック、右クリック。
例えが上手くないが、初心者の通る道ですね。
DB大介 ほんとほんと、よく分かる。
ACCESSでは、オペレータ間違わないように漢字と英数字の切り換えは自動化する。
これがすばらしい。 次回の次のお楽しみ。
|
@F_家計明細のラベル[Q_家計明細]を削除する。 AF_家計メイン「詳細」の下部を下方に10Cm広げる。ハンドル操作(十字) BF_家計明細「詳細」の下部を下方に10Cm広げる。ハンドル操作(十字) == 1日分のデータ量を10件と想定 == |
2.F_家計メインの形式
@フォームプロパティの確認・修正 プロパティ 説明
A[伝票番号][日付]一式を画面上部中央よりに移動する。(グループ操作) D上記4項目を見やすくするために四角形で囲む。(ツールボックス) E画面下部右側に[閉じる]ボタンを新設する。(F_費目マスタからコピー)
|
3.壁紙の挿入とF_家計メインの起動
@ マクロ:M_家計簿入力
A [メインパネル]〜[家計簿入力]のプロパティを修正する。 プロパティ
B [メインパネル]〜[家計簿入力]を起動する。(実行モード) 図3-6 F_家計メイン(整形後イメージ)参照 == 家計簿入力画面全体のバランスを観察、改良点を把握 == C[閉じる] == [メインパネル]に戻る == |
以上、整形段階までの作業が完了したら修正オブジェクトのMDB:Kakeisub(1.10).mdb (Ver1.10)を
メール送信してください。
図3-6 F_家計メイン(整形後イメージ)