家計簿データベースの作成 テーブル作成編
作成するデータベースの概要
管理したい項目は以下の通りです。
銀行口座
クレジットカード、WAONやPayPayなどの電子マネー
現金
保有ポイント
作成するオブジェクト
家計簿テーブル
費目テーブル
収支先の明細テーブル
クレジットカードテーブル
家計簿記入フォームや銀行口座、クレジットカード別のフォームは次回以降、作成します。
テーブル構成を決める
必要なテーブルを考えます。
「費目」と「入出金先明細」、そしてクレジットカードの管理のための「クレジットカード一覧」を単体のマスターテーブルにします。
日々の収支を記録するテーブルは、費目テーブルや入出金先明細テーブル、クレジットカード一覧テーブルを参照してデータ入力できるように、トランザクションテーブル「家計簿」として作成します。

①マスター系テーブル
一度登録すると、更新頻度の少ないデータテーブル
②トランザクション系テーブル
入金や出金など、処理データを保存。頻繁にデータの更新が発生する。
③テンポラリー(一時)テーブル、またはワークテーブル
一時的な作業用に用いられ、頻繁に追加・削除が発生する。
データは保存されない。
④履歴テーブル
過去の実績や履歴を保存。参照用に使用される。
データベースの作成
家計簿データベースを作成します。
テーブル設計の構成を基に、マスターとなる費目テーブル、収支明細テーブル、クレジットカード一覧テーブル、トランザクションとなる家計簿テーブルを作成します。
Accessを開いて、空のデータベースを選び、好きな名前で保存します。
今回は「ThreeCats家計簿.accdb」で保存しました。
拡張子は.accdbですが、Accessのバージョンによっては.mdbなどの場合もあります。

保存ボタンを押すと、次のような画面が開きます。

いったんテーブルを閉じます。
費目テーブルの作成
リボンの作成タブをクリック、テーブルデザインを選びます。

テーブル1のデザインビューが開きます。

Accessの画面構成

フィールドの設定
次のようにフィールドの定義を設定します。
フィールド名 | データ型 | フィールドサイズ | |
主キー | 費目ID | オートナンバー型 | 長整数型 |
費目名 | 短いテキスト | 30 |
フィールドの定義が終わったら、F12キーを押してテーブルに名前を付けて保存します。


「mtbl_費目」テーブルができたので、 リボンの表示ボタンの下向き▼をクリックしてデータシートビューを選択します。
右下のデータシートビューアイコンをクリックしてもデータシートビューが開きます。

データの入力
費目テーブルには収入費目と支出費目を入力します。
収入費目として給料やその他の収入、人によっては副業での収入や宝くじの当選、競馬で儲けたなどイレギュラーな収入があると思います。
今回は給料と雑収入に分けています。
費目フィールドはコンボボックスで選べるようにしますので、 支出費目 を少し細かく設定しています。
また、税金や保険代などの毎月出費額が決まっている費目も細かく設定することにより、先付で記入することができ、おおよその支出額を予測することができます。

初めて家計簿をつけるときは「繰越残高」を選んで、スタート時点での残高を入力します。
費目の記入がない家計簿は仕分けをすることができないので、後ほど作成する「家計簿入力」フォームで選び忘れがないように設定します。
これで費目テーブルは完成です。
「mtbl_費目」タブの✕印をクリック、保存してテーブルを閉じます。
収支明細テーブルの作成
新しく収支明細テーブルを作成します。
手順は「mtbl_費目」テーブルの作成時と同じく、リボン「作成」の「テーブルデザイン」をクリックします。
フィールドの定義
フィールド名 | データ型 | フィールドサイズ | |
主キー | 明細ID | オートナンバー型 | 長整数型 |
明細名 | 短いテキスト | 30 |
テーブル名「mtbl_収支明細」で保存します。
データの入力

保存してテーブルを閉じます
使用カード一覧テーブルの作成
よく、家計費の節約のためには「クレジットカードの使用をひかえてなるべく現金」でといいますが、 カードの使用による ポイント返還も魅力です。
カードを使えば銀行口座から引き落とされる日が決まっているので、引落日で記入すればその日の時点での残高などを確認することできます。
手書き家計簿と違って、データベースやエクセル、家計簿アプリなどで家計簿をつけるメリットはここにあると思います。
フィールドの定義
| フィールド名 | データ型 | フィールドサイズ |
主キー | カードID | オートナンバー型 | 長整数型 |
| カード名 | 短いテキスト | 30 |
テーブル名「mtbl_カード一覧」で保存します。
データの入力

保存してテーブルを閉じます。
家計簿テーブルの作成
家計簿テーブルを作成します。
フィールドの定義
フィールド名 | データ型 | フィールドサイズ | |
主キー | ID | 数値型 | 長整数型 |
日付 | 日付/時刻型 | 書式-日付(S) | |
費目ID | 数値型 | 長整数型 | |
収入金額 | 通貨型 | 規定値-0 | |
支出金額 | 通貨型 | 規定値-0 | |
明細ID | 数値型 | 長整数型 | |
獲得ポイント | 通貨型 | 規定値-0 | |
使用ポイント | 通貨型 | 規定値-0 | |
カード使用日 | 日付/時刻型 | 書式-日付(S) | |
使用カードID | 数値型 | 長整数型 | |
備考 | 短いテキスト | 30 |
主キーのIDを数値型にしています。
家計簿の記入作業において、後でレシートが出てきたり記入忘れにより日付を遡って記入する事があります。
オートナンバー型にすると入力する手間が省けますが、順番が前後してしまい、その時点での累計がマイナスになったりします。
数値型にすることにより、手動でIDを変更して順番を直すことができます。
費目名と明細名、使用カード名はコンボボックスから選べるように設定します。
手作業でフィールドプロパティを設定する方法もありますが、今回はルックアップウィザードを利用します。
費目名をコンボボックスにする
費目IDフィールドのデータ型を展開して、ルックアップウィザードを選択します。

ルックアップウィザード画面が開きます。

「ルックアップフィールドの値を別のテーブルまたはクエリから取得する」を選び、次へをクリックします。

「テーブル:費目テーブル」を選び、次へをクリックします。

≻≻ボタンをクリックして、費目IDと費目名を「選択したフィールド」へ移動させ、次へをクリックします。

1を展開し、費目IDを選び昇順で並べるように設定します。
次へをクリック。

「キー列を表示しない」にチェックが入っていることを確認します。
これはコンボボックスに費目IDを表示せず、費目名だけを表示するためです。
列の右端をドラッグして列幅を調整することができます。

完了をクリック。

保存してウィザードを閉じます 。
フィールドプロパティのルックアップタブをクリックすると次のような画面になっています。

手動で設定する場合は、次のように設定します。
まず、フィールドプロパティのルックアップタブをクリックします。
「表示コントロール」の「テキストボックス」をクリックすると右端に下向きの矢印が現れますので、展開してコンボボックスを選びます。

以下のようにフィールドプロパティを設定します。
・表示コントロール:コンボボックス
・値集合ソース:mtbl_費目
ルックアップウィザードで自動作成されたように、SQL文を直接入力しても良いのですが、値集合ソースを
展開して(下向きの矢印)「mtbl_費目」を選択すれば自動的にSQL文に変換されます。


・連結列:1
「tbl_費目」テーブルの1行目、つまり「費目ID」と連結されることを意味します。
・列数:2
コンボボックスに表示される列を2列、「費目ID」列と「費目名」列を指定していま
すが、「費目ID」列は不要ですので、後の「列幅」で「費目ID」列を表示しないよ
うにしています。
・列幅:0㎝;3㎝
「費目ID」の列幅は0㎝で非表示になります。「費目名」の列幅は3㎝にしていま
すが、1行で表示できない場合はスクロールバーが表示されます。
・リスト行数:16
デフォルトの16のままですが、行数が足りなければスクロールバーが表示されます。
その他はデフォルトのままでよいと思います。
明細名をコンボボックスにする
費目名をコンボボックスに設定した時と同じように、明細IDのデータ型を展開してルックアップウィザードを設定します。
以下のようなります。

使用カード名をコンボボックスにする
同じように「使用カード」のデータ型を展開して、ルックアップウィザードを設定します。

以上でテーブルの作成は終了です。
次回からは家計簿入力フォームを作成するために、クエリを考えます。
家計簿データベース 家計簿を考える編へ