【Access】毎日続ける!家計簿をAccessで作ってみた。②

家計簿の画像まりや


家計簿データベースの作成 テーブル作成編

作成するデータベースの概要

管理したい項目は以下の通りです。
 銀行口座
 クレジットカード、WAONやPayPayなどの電子マネー
 現金
 保有ポイント

作成するオブジェクト
 家計簿テーブル
 費目テーブル
 収支先の明細テーブル
 クレジットカードテーブル

家計簿記入フォームや銀行口座、クレジットカード別のフォームは次回以降、作成します。

テーブル構成を決める

必要なテーブルを考えます。

「費目」と「入出金先明細」、そしてクレジットカードの管理のための「クレジットカード一覧」を単体のマスターテーブルにします。
日々の収支を記録するテーブルは、費目テーブルや入出金先明細テーブル、クレジットカード一覧テーブルを参照してデータ入力できるように、トランザクションテーブル「家計簿」として作成します。

リレーションシップの画像

①マスター系テーブル
 一度登録すると、更新頻度の少ないデータテーブル
②トランザクション系テーブル
 入金や出金など、処理データを保存。頻繁にデータの更新が発生する。
③テンポラリー(一時)テーブル、またはワークテーブル
 一時的な作業用に用いられ、頻繁に追加・削除が発生する。
 データは保存されない。
④履歴テーブル
 過去の実績や履歴を保存。参照用に使用される。

データベースの作成

家計簿データベースを作成します。

テーブル設計の構成を基に、マスターとなる費目テーブル、収支明細テーブル、クレジットカード一覧テーブル、トランザクションとなる家計簿テーブルを作成します。

Accessを開いて、空のデータベースを選び、好きな名前で保存します。
今回は「ThreeCats家計簿.accdb」で保存しました。
拡張子は.accdbですが、Accessのバージョンによっては.mdbなどの場合もあります。

Accessホーム画面の画像


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

ThreeCats家計簿の画像

いったんテーブルを閉じます。


費目テーブルの作成

リボンの作成タブをクリック、テーブルデザインを選びます。

テーブルデザインの画像

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

フィールド設定の保存画像

Accessの画面構成

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フィールドのデータ型を展開して、ルックアップウィザードを選択します。

費目設定の画像


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

ルックアップウィザードの画像1

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

ルックアップウィザードの画像2

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

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

ルックアップウィザードの画像4

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

ルックアップウィザードの画像5

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

ルックアップウィザードの画像6

完了をクリック。

ルックアップウィザードの画像7

保存してウィザードを閉じます 。

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

ルックアップウィザードの画像8

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

費目設定の画像


以下のようにフィールドプロパティを設定します。

・表示コントロール:コンボボックス

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

費目設定の画像

家計簿テーブルのフィールド設定画像3


・連結列:1
 「tbl_費目」テーブルの1行目、つまり「費目ID」と連結されることを意味します。

・列数:2
 コンボボックスに表示される列を2列、「費目ID」列と「費目名」列を指定していま
 すが、「費目ID」列は不要ですので、後の「列幅」で「費目ID」列を表示しないよ
 うにしています。

・列幅:0㎝;3㎝
 「費目ID」の列幅は0㎝で非表示になります。「費目名」の列幅は3㎝にしていま
 すが、1行で表示できない場合はスクロールバーが表示されます。

・リスト行数:16
 デフォルトの16のままですが、行数が足りなければスクロールバーが表示されます。

その他はデフォルトのままでよいと思います。


明細名をコンボボックスにする

費目名をコンボボックスに設定した時と同じように、明細IDのデータ型を展開してルックアップウィザードを設定します。

以下のようなります。

明細名のルックアップウィザード画像


使用カード名をコンボボックスにする

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

カード名のルックアップウィザードの画像

以上でテーブルの作成は終了です。

次回からは家計簿入力フォームを作成するために、クエリを考えます。

家計簿データベース 家計簿を考える編へ

家計簿データベース クエリ作成編へ