キャリまが

ノースキル文系私大卒だった僕が30代で海外経験ゼロから英語を使う仕事に転職できたノウハウを発信!英語・会計資格の勉強法や、その他の雑記を綴るブログです。

Accessの勉強を兼ねて家計簿をつけてみる

Accessって使えるの?

 便利だとは聞いているけれど、なかなか取っ付きにくくて使いこなせないアプリケーションAccess。

 僕は2年ほど前から仕事でもちょくちょくAccessを使うようになりましたが、他人が作ったデータベース(DB)を検索する程度で、自分でDBを構築することはまだ出来ませんでした。ただ、つねづね「自分でDB構築できたら業務の中で役立つ場面がたくさんあるんだろうなぁ」とは思っていました。

 そこで今年こそはAccessを習得しよう!と決めました。最初はテキストを読んだりしていたのですが、やったことのある人なら解ると思いますが、DBというのは紙面だけではどうにもイメージがしづらいのです・・・。

 そこで、やはり実践が一番!ということで、家計簿DBを作ってみることにしました。

というわけでこれから家計簿DBを作っていく過程をちょくちょく記事にしていこうと思います。

これまで家計は妻に一任していたのですが、会計を生業としている者としてそれはいかがなものか、家庭の資金繰りくらい把握しておくべきじゃないのか(否、把握したい)という思いも出てきたので、家計簿DBをつくることは一石二鳥です。

 

それでは早速。

 

テーブル構成

まずDBの要となるテーブル構成の設計はこんな感じです。

ここはいざAccessを開く前にある程度時間を使って詰める必要があります。

f:id:herpes_carrier:20140421052239p:plain

と、いきなり「テーブル」という用語を使って書き始めてしまいましたが、一応説明しておくと、AccessのDB(というかDB全般)は"テーブル"と呼ばれるデータの塊が集まって出来ています。

実際のテーブルがどのようなものか、「T_収支台帳」を例にとって解説しますと、このようになっています。

 

f:id:herpes_carrier:20140421221541j:plain

※特定に繋がりそうな地名は伏せています。 ご了承ください。

 

テーブルには"フィールド"と呼ばれるデータの項目が設けられており、フィールドはテーブルを作成する際に自由に定義することが出来ます

そして各フィールドにデータを入力したものが"レコード"と呼ばれる、DBを構成するデータの1単位となります。

 

日々の収支は「T_収支台帳」に溜まっていきます。

この場合は、一つの収支が”1レコード”ということになります。

T_収支台帳の「現預金コード」をみて見ると、5桁の数字になっており、これだけでは一体何を表しているか分かりませんね。

1番最初の図を見ていただけると、T_収支台帳の「現預金コード」と、M_現預金マスタの「現預金コード」が矢印で繋がっているのがわかると思います。

つまり下図のように、T_収支台帳には現預金コード情報だけを含み、それに付随する銀行口座名だとかクレジットカード名はM_現預金マスタから引っ張って参照することが出来るのです(ExcelのVLOOKUP関数をイメージして下さい)。

 

f:id:herpes_carrier:20140421215121j:plain

↑現預金コード「21001」のレコードは「三井住友VISAカード」での支出だということがわかります。

 

こうすることで、テーブル構成をすっきりさせると共に、後からの集計や整理をしやすくしているのです。

 

T_収支台帳は「現預金コード」の他、「科目コード」「支払先コード」の情報が各マスタと紐づいており、それぞれ「※預金、財布、クレジットカードのどの入出金か」、「※入出金の種類」、「※どこへ(から)の入出金か」を表しています。

 

各マスタのめぼしいフィールド情報は次のとおりです。

現預金マスタ

各入出金が銀行口座、クレジットカード、財布のどれから行われたかを定義します。

  • ”現預金区分”フィールド

   「銀行口座」「財布」「クレジットカード」の3区分があり、収支台帳のレコードの入出金がどの区分のものか定義します。

  • ”名称”フィールド

   銀行口座名やクレジットカード、財布の名称。

  • ”引落日”フィールド

   クレジットカードの引落日。

その他のフィールドは銀行口座の名義や口座番号を格納しています。

 

科目マスタ

  • 科目

   食費、交通費、医療費など、収支が何によるものかを定義します。

  • 変動固定

   その科目の収支が毎月変動的なものか、固定的なものかを定義し、後から分析しやすくします。

  • サブ科目

   たとえば「医療費(大人)」「医療費(子供)」と、細分化されている科目を「医療費」として一つにまとめ、後から分析しやすくします。

 

このように、テーブルのフィールドは自分の好きなように設定出来るので、後から分析する際に便利な様に設定しておきます

 

支払先マスタ

どこに支払ったかを定義します。

そこまで細かく把握するつもりは無いので、光熱費やAmazon以外は「その他」になる予定。

 

DBの構造はだいたいこんな感じです。

要は、日々の収支はとにかくT_収支台帳に記録していき、後で分析する際にその他のマスタテーブルの情報を参照するという形になります。

なお、現預金区分が「銀行口座」になっているレコードの収入から支出を差し引けば、その時点での預金残高が計算できるようになっています。

 

 ちょっと解りづらかったかも知れませんが、実際に使ってみるとAccessは思ったほど難しくありません。

ただ、DBはデータの蓄積なので、Excelのような表計算ソフトの自由度はありません。

フィールドやレコードは、あくまでデータの入れ物であって、Excelの「セル」とは全くの別物です。

 

 Accessの習得にオススメの書籍

ちなみに、僕がAccessで家計簿を作るために勉強したテキストはこの一冊だけです↓ 

この立山さんのシリーズは本当にわかりやすく、名前の通りこれ一冊で「ツボとコツがゼッタイにわかる本」となっています。

とりあえず「Accessって何から手をつけたらいいか解らない」という状態から、一通り基本的な機能を学び、自分でDBを構築できるようにまでなり、その時点で足りない知識についてはまた次の書籍を買って調べてみればいいと思います。

 

ちなみに同じ著者のシリーズで、他にもExcel VBAのテキストも非常に役立ちました。

最終的には、両者を連携させ、ExcelからAccessを操作して自分で業務用のアプリが作れるようになると楽しいですよ。

それでは。 

 

 

 

スポンサーリンク