どうも、ガンダムのオッサンです。
「データベース」
この言葉を始めて聞いた時は10年以上前でした。
それまではエクセルで事務処理の全てを行なっていた私、それがマイクロソフトのアクセスに出会った時から事務処理の殆どが変ったと言えるほどの有能なソフトで現在もバージョンを変えつつ使い続けています。
そんなアクセスについての思い出と、データベースの魅力を少々語らせて下さい。
エクセルとアクセスの違い
昔はエクセルさえあれば何でも出来ると思っていましたし、今でもエクセルさえあれば事務処理の大概のことは出来るように思います。
納品書でも請求書でも顧客管理でも... まあみんなエクセル使いますよね、使い勝手もよいし、短時間で目的の帳票を作成して印刷できますもん。
んで私がエクセルで限界を感じたのがvlookup関数、始めはなんて便利な関数だ!と思っていたのですが、使ってゆくうちに段々面倒になってきます。
それからVBAも覚えてエクセルで一つの専用ソフトのような物を色々作ってきました。
キレイにメニュー表を作ってそこから目的の帳票を直ぐに出力... 今思えば自己満足でした。
そんな中、エクセルだけではどうしてもクリアできない壁にぶち当たりました。
帳票でも納品書でもそうですが、何かを出力したいのであればデータが必要になります。
そしてこのデータが大量であったり、関連するデータとの紐付け作業が必要になったりするともう面倒です。
簡単な例だと...
ハテナジュクオ 東京都港区〇〇 ℡123456789 ローション×3 ティッシュ×10
みたいなデータであれば「氏名」「住所」「電話番号」「注文」「注文」みたいな横セルが必要になりますよね。
んでローションの単価が1000円で数量×3の計算をさせてどこかのセルに3000円と表示、ティッシュも同じく表示、全部の合計みたいな感じで表計算させるのが普通だと思います。
これぐらいのデータであればエクセルで十分なんですけど、ローションに種類があった場合、それも10種類ぐらいあるとなればVloolup関数を使わないと面倒になってきます。
また上記の例では取り扱い品目がローションとティッシュの2つしかありませんが、そんな少ない品目の仕事ってないですもんね。
ローション一つにしたって仕入れ業者が5社あればそれなりの品種数になるはずです。
それでもエクセルで頑張れはしますが、扱う情報項目が100を超えてそこから種類も枝分かれしてくるとなればエクセルでやってられなくなります。
とくに月や時期によって扱うものが変ってくるとなればイチイチデータ入力しなければなりませんし、小売となれば顧客情報も含むのでもう大変...
このような状態になったらデータベースを使ったほうが効率的。
エクセルのように1セル単位でリンクさせるのではなく、レコードというセルの集合体同士でリンクさせるのがアクセスです。
当然ながら扱えるデータ量も格段に増えて快適過ぎる世界が広がっています。
覚えるのが面倒
エクセルもアクセスも同じマイクロソフト社の製品...とはいっても使い方が全然違います。
エクセルなら適当に作って計算間違えたりしても数式直すだけです...ってその数式を簡単に直せるのが問題なんですよね。
キーボード一押しでセルの内容が変わるのは便利ですが、一瞬で全てが崩れる場合もあります。
対するアクセスはデータと計算を分けて作りこむので操作方法が少し特殊、でもビジュアル的にデータベースを作れるってのは本当に便利すぎます。
SQLやVBAといった知識が無くても基本的な用語と挙動さえ覚えてしまえば簡単なデータベース作成は30分もかかりません。
ただ作りこんで便利なものに仕上げるなら詳しいVBAの知識が必要になって、これがハードル高かったです。
まあVBAも全部を覚える必要は無くて、最初のうちはボタンを押したら印刷プレビューやエクセルへの出力、慣れて来たらデータの追加や削除といった挙動のプログラムみたいに必要な命令文を一づつ覚えてカスタマイズ出来るのがとても良いです。
アクセスを覚えると何でもアクセスで作りたくなる
これが問題かもしれません。
エクセルでもありますよね、FAX送付状でも何でもエクセルで作っちゃうってやつ。
あれがアクセスでも似たような事が発生します...というか作っちゃう。
FAX送付状なんてワードで十分じゃないですか、ちょっと表や数字を入れたいならエクセルでも十分なはずです。
それをアクセスで作りたくなってしまうってもんでして、いちいちドロップダウンリストから取引先名簿・担当者を選択して、わずか数行の発注をデータから引っ張り出してくる...
確かに毎回同じフォーマットでキレイに作成できるといった良い面はありますが、取引先会社や担当者の名前を手打ちしたほうが早いかもです。
例えば㈱ジュクオの担当者オッサンにローション3個をFAXで発注なんてもんはアクセスでやる必要性が全くないのに作っちゃうんですよね...
しかも印刷した発注所に別件を手書きでメッセージを書いちゃうってなれば無意味すぎます。
本格的にアクセスにのめりこむ
私がアクセスにのめりこんでいった最大の要因はバーコードスキャナーです。
自分でバーコードを発行、それをラベルシールに印刷、品物に貼り付けみたいな世界です。
最初はとてもハードルが高く思えましたが、これが面白い世界。
バーコードは結局のところ数字なワケでして扱う品物に振った番号を手打ち入力するとメンドクサイし間違えないようにするためってのにとても便利なシステムです。
コンビニで商品に貼ってあるバーコード、それをバーコードリーダーでスキャンするとレジ画面に商品名と単価が表示されるってなアレ。
入力する桁数が4桁ぐらいならバーコードは必要ありませんが、4桁程度で済まないからバーコード化して入力するのです。
エクセルでもこのようなバーコード入力によるデータ管理が可能ですけどエクセルじゃやってられません。
んでバーコードを使いこなせるようになると、これまた何でもバーコード化したくなるってもんです。
- 社員Aの番号100000000001
- 社員Bの番号100000000002
こんな感じで番号を振っていきます... って社員が2名なら1番2番と手打ちのほうが断然早いのですが、バーコードの覚えたての人間にそんな忠告をしても聞く耳を持ちません。
気が付いたときには「社員A」「品物A」「単価」といった全てをバーコード化していました。
こうなってくると病気ですね、とくに単価をバーコード化する必要が全くない。
そんな私の病的なアクセスやバーコード管理に目を付けたのが社員Bでした。
彼は私の趣味に近かったデータベースを仕事に引き上げた人間です。当初は必要とされている感が強く、とても嬉しかったです。
仕事になると面白くない
自分で使う業務用アプリケーションは自分専用に近いものであり、他人が使う事を想定していません。
多少見栄えや操作性が悪くても問題ないし、デバッグモードになってしまっても「ま、いっかwww」で済みます。
しかし他人が使うものとなれば話は別、それが取引先用ともなれば完成品の必要があります。
とくにレポート(印刷用出力画面)は文字位置のズレは当然で、使用する会社が今まで使っていたフォーマットや業務内容に合わせる必要が出てきます。
私はこれが面白くありません。
さらに相手に合わせて作るデータベースは完成品の必要とはいってもですね、ドズルはあえて使いにくい部分や足りない部分を残すよう指示してきます。
つまり改良の余地を残し続けるってやつですよね、とてもズルイやり方です。
まあ私が作ったデータベースの販売やメンテナンス料を取ってるわけではないのでコレで良いっちゃ良いとも言えます。
このような状態になるとデーターベースの仕事が面白くない...が想像できると思います。
ネットワークのデータベースに手を出す
毎回似たようなシステムを作っても全然面白くないので、近年の私はネットワークを使ったデータベースに手を出しております。
これがけっこう難しくてややこしいのですが、面白い。
例えばですが、取引先Aは物を倉庫出荷会社のXに業務委託している場合なんか。
A社は私とX社と取引があるのですが、私とX社は取引関係に無い場合です。
ここにドズルが口を出してくるとネットワークを使ったデータベース構想が出来上がります。
ただ私とドズルの弱点はインターネット接続業者との繋がりや、それで利益の出し方を知らないところ。
アフィリエイトならこの問題は簡単に解決できますよね、ただ業務ベースとなれば話は違ってしまい、通信業者の代理店のような形が必要なのかも?なんて話をしております。
このような案件がいくつかあれば本腰を入れたいと考えていますが現在進行形一件のみ。それも本業の仕事を得る為のボランティアです。
加えてこのような仕事をする専門の業者がいる事を考えると私やドズルの知識では太刀打ちできません。
でもこのような状態はやっぱり面白くて、これが完全に仕事になっちゃうと面白くなくなるのでしょうね... きっとそうなんだと思います。
最後まで読んでいただき、本当にありがとうございます。
データベースに全く興味が無い人にも魅力を分かってもらいたいので私の想いを記事にしてみました。
ちなみに品物の例をローションとしてしまったのは完全にbutao_oさんの責任です。
ローションという単語は日常的に目にするものでは無いはずです。
それが筆者のブログを読んでいるとローションが頻繁に出ますので、無意識のうちにローションを選んでしまったのでしょう。
ちょっとローション買ってきます。