初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

中級者のためのExcel エクセルマクロVBA:Accessデータベースとつなぐその2

表を整理するとテーブルになる

まずは前回の表に登場してもらいましょう。


f:id:drumer2sh:20140825120340p:plain


さてこれからテーブルを作ってみます。テーブルを作るコツみたいなのがあるので、それを教えます。ただし、はっきり言うとこれは簡単にとりあえずやってみる為のコツなので正式に知りたかったら正規化とかその辺ちゃんとデータベースの勉強しましょう。とりあえずコツは・・・

同じデータができないように表を分ける


です。ではさっそくやってみます。上の表を見ればわかりますが、同じデータが沢山あるのがわかりますでしょうか?例えば、名前、商品なんか、同じ名前の人、同じ商品などが沢山あります。これをいろんな表に分けて行くわけです。さて、どうわけましょうか?


( ゚д゚)?


まぁゆっくりやりましょう。まず、名前ですね。同じ注文者が沢山います。これを・・・どう分けるか?

そのデータ用のテーブルを作る


です。つまり注文者、まぁ要するに利用者の表(テーブル)を別に作って名前についてはそこで管理しましょうよ。ということなんです。では名前を管理する表を作りましょう。ついでにその人の住所とか利用者のIDとかもあるはずなので、それも一緒に管理します。


f:id:drumer2sh:20140829110358p:plain


IDというのはこの利用者の固有のIDです。これをテーブルの「主キー」と呼びます。これで同姓同名も安心です。
次に、商品も同じものがありますよね?これも分けてみましょう。商品用の表を作るわけです。


f:id:drumer2sh:20140829110404p:plain


はい、できました。これで大体はOK・・・あれ?まだありますよね?そう、日付です。個人が同じ日に複数の商品を買うことだってあるので、このままでは上手くないですよね?つまり、

・注文日とその注文の合計金額、注文した人
・注文の詳しい内容

という2つの表が必要なのです。なので、さらに細かく分けていきます。まずは注文表


f:id:drumer2sh:20140829110411p:plain


わかりますでしょうか?ここで大きなポイントです。注文者IDを見てください。ここには利用者用テーブルのIDが入っているのです。こうすることで、だれの注文で、どこに住んでいる人かをIDで紐づけて知ることができます。つまり注文テーブルを見れば、注文者の情報は芋づる式にわかるようになっているのです。

さらに注文の詳細表を作ってみましょう。


f:id:drumer2sh:20140829110417p:plain


こんな感じです。注文の詳細表もやっぱり、IDがあり、これが主キーとなって1つの注文詳細の情報を管理します。そしてここでも見るとわかりますが、商品IDが入っていますよね?そして注文番号が複数あるのがわかりますでしょうか?このようにして、1つの注文とそれに紐づいてる複数の注文商品の詳細をこのように表にしてしまうのです。

各表がそれぞれ関係しているのがデータベース

このようにそれぞれの表がIDで「紐づいて」関係して1つの大きなデータを作っています。これがデータベースと呼ばれるもので、特にこのようなデータベースを「リレーショナルデータベース」と呼んでいます。

非常に簡単ですが、こんな感じです。後はこの各表をアクセスに入れるだけです。各表の列には数字や文字が入るので、アクセスでテーブルを作る場合は各表の列の名前と、その列に入れるデータの種類を決定します。


それはまた、次回に。今日はここまで!


かしこ