このブログに関しては、ぜひ、ACCESSを操作するときの注意点ですので、
できるだけデータベースという概念を理解してほしいと思います。
この概念を理解することで、ACCESSの操作が楽しくなります。
目次
ACCESSで、データベースを作成するときの注意点
こんにちは。伊川(@naonaoke)です。
今回は、データベースを作成するとき注意点を説明します。
今にして思えば、今回の内容を説明していませんでした。
コンサル生に、今回、紹介する内容を説明したところ、目からウロコのようでしたので、説明したいと思います。
Excelと、ACCESSの違いも含めて、理解していただくと、ACCESSが身近なツールになります。
現在、ACCESSを利用している人にも、読んでいただきたい内容です。
このブログはこんな人にお勧め
- 現在、ACCESSを利用している人
- ACCESSを利用しようとしている人
- データベース設計の意味が分からない人
このブログを、読み終わるころには・・・・
データベース設計という意味が理解できるようになります。私も最初の頃は、まったく理解できませんでした。しかし、データベース設計と言うことを理解したときに、本当に目からウロコでした。その感動を少しでも共有できたらと思います。
ACCESSをExcelと勘違いする点
これは、何度も動画でも、ブログでも説明していますが、まったくの別モノです。
他人の空似なんです。
私が、かつて、ACCESSで失敗して点は、私のセクションのKPIを作成しようとしました。
KPIとは、社員が、どれくらい働いたのか、どれくらいサボったのかを判定する指標です。
それまでは、Excelを使ってKPIを作成していました。
私は、コールセンター勤務です。
会社のシステムで、抽出されるデータは、大体、1日当たり、2万件のCSVファイルです。
このCSVファイルを加工して、KPIを作成していました。
しかし、月末になると、動かなくなる・・・・・・・
Excelの数式には、VLOOKUP関数、IF関数、SUMPRODUCT関数、
なぜ、こんなに、Excelが重くなるような関数を利用しているのが、意味不明でした。
しかし、知らないことは、罪深いことで、当時の私は、こういうものだと思っていました。
ACCESSが利用できるようになって、ACCESSで、KPIの元を作成しようとしました。
KPIは、時間帯別に、社員の動きをみる使用です。
そこで、シフト表を、ACCESSに取り込めば、社員の稼働時間がわかります。
もちろん、会社のシステムからでも確認できます。
しかし、会社のシステムは、ログインした時から、労働時間をカウントします。
9:00に始業でも、普通は、8:45くらいにはログインするでしょう。
または、8:30にシステムにログインしている人もいるでしょう。
そうすると、各社員によって、同じ時間働いているのに、開始時間が違うため、システムの時間では統一されないのです。
つまり、なるべく、9:00、ギリギリにログインした人が、いい結果を残すような指標になってしまうのです。
ここで、初めてデータベース設計と言うものに出会います。
シフト表をACCESSに取り込む 作業手順 その1 失敗その1
よくありがちのシフト表です。
最初は、何も考えず、このままシフト表を取込したいと思いました。
なんか、おかしいなと思いながら作成しました。
図では、それらしく作成したのですが、イマイチ、納得ができません。
空白のところには、0を入れないと正しく計算ができません。
シフト表をACCESSに取り込む 作業手順 その2 失敗その2
作成したが、なにをどうしていいのかわからない。
このクエリでは、10も、文字として扱われているため、計算もできない。
その時、俺は、何をしているのだろうと思ってしまいました。
いや、ACCESSから、「ところで君は何をしたいの?」と言われたような気がしました。
しかも、まだ、失敗に気づいていない私です。
その時は、KPIを作成したい焦りで、だれの意見も聴かないで、必死で考える私です。
そして、教えてgooで質問をするのです。
シフト表をACCESSに取り込む 作業手順 その3 厳しい言葉で目が覚めた
教えてgooで言われたことは、データベース設計が悪いと言われました。
データベース設計ってなに?
見たままに取込を実行して何が悪いと思います。
しかも、ACCESSは、24時間以上の計算はできず、かつ、Excelのように、24時間以上の時間帯を表示するには、文字として表示するしかないのです。
ACCESSって、不便だし、使えねーと思いました。
もう、いいやって思いました。
しかし、データベース設計がわからないので、どのように設計すればいいのでしょうか?
質問をしてみました。
一例ですが、このように作成してみたら?
回答が付きました。
これって?
すごい、こうやるんだと、泣けてくるほど嬉しかったというか、感動というか、目からウロコでした。
シフト表をACCESSに取り込む 作業手順 その4 ACCESSは面倒
Excelのシフトと、ACCESSのシフトを作成する場合、ACCESSが絶対に面倒です。
しかし、Excelのシフトはカンタンかもしれませんが、毎月、Excelのシートまたは、ブックが増えてきます。
しかも連携できないから、常に何枚ものブックを開くようなことが起きます。
これに対してACCESSは、1つのデータベースがあれは、しかも、入力項目を決めておけば、30年分のシフトだって管理できるではないか?
データベースってこういうことなんだと感じたのです。
シフト表をACCESSに取り込む 作業手順 その5 時間の計算
しかし、時間計算の問題が残っています。
ここもネックだったのですが、ある日、眺めていた、社内システムが、私に光をもたらします。
そういえば、社内システムのログイン時間は、すべて秒で表しています。
今までは、なぜ秒なんだ?
素直に時間に表せよって思っていました。
しかし、次の瞬間、もしかして、こいつも(社内システム)も時間計算が苦手なのか?
そうか、だから、こいつ(社内システム)は、秒でログイン時間を吐き出し、
その秒で、エンドユーザーが、時間で表すのか、日で表すのか、を選択させているんだ。
そうなると、秒で吐き出すのが、エンドユーザーにとって1番都合がいい。
こいつ(社内システム)は、案外すごいやつかも?って思いました。
では、やってみましょう。
このようなシフト表(テーブル)を作成します。
今日までの時間を計算する元の表ができました。
今日までの時間の合計がでました。
後は、この情報をExcelに転送すればOKです。
ここがポイント
ここまで、理解するのに、1年以上かかりました。しかし、ACCESSとは、このように利用するんだということを理解するために必要な時間だと思いました。ここまでが、長かったのですが、これが理解できたから、オートルックアップクエリを理解できたような気がします。
まとめ
今回は、長文となりましたが、ACCESSを理解するために必要なことです。
データベース設計が悪いと思ったら、ぜひ、この記事を読んでみてください。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No209です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。