みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
多くのビジネスの現場ではエクセルをデータベースソフト代わりとして活用をしているケースが多いと思いますが、残念ながらエクセルはデータベースソフトではありません。
データ量の増加とともに、運用上のリスクが高まっていきます。
そこで、データベースの移行先を検討することになりますが、その第一候補として挙がるのは「Microsoft Access」である場合が多いでしょう。
さて、そんなニーズにお応えする形で、本記事から何回かにわけて、エクセルVBAでエクセルからAccessデータベースを操作する方法についてお伝えしていきます。
初回はその序章として、なぜエクセルとAccessを連携するのが良いのか、またその際の注意点についてお伝えしたいと思います。
どうぞよろしくお願いします!
エクセルをデータベース代わりとして使い続けるリスク
私たちのビジネスでは、サイトのトラフィックのデータ、商品の販売データなど様々なデータを取り扱います。
そのデータを収集、蓄積をした上で、計算式やグラフ、ピボットなどでサマリするためのアプリケーションとしては、エクセルが最もよく使われていると言っても良いでしょう。
エクセルはそのバージョンが2007以降であれば、一つのシートで100万行以上のデータを取り扱うことができますので、表計算だけでなくデータベースとしての活用もある程度はできるようになりました。
しかし、こんなことはありませんか??
- とあるデータを集計し始めた最初の頃は良いのですが、年月が経ってくるとデータ数がどんどん増えていきます。
- データ数が増えてくると、シートの仕込んでいる計算式の計算回数がみるみる増加、結果として動作もどんどん重くなります。
- その重さに運用上耐えられなくなり、古いデータから別のエクセルファイルに退避をして…などの対処をします…ちょっとダルい作業です。
- あるとき、過去からの推移を見たいときなどは各ファイルからデータを集める…あー、もうめんどくさい!!
と、こういうことがよくあります。
…ということで、どこかのタイミングで大量のデータだけ外部のデータベースに保存をして、エクセルで計算対象となるデータだけ都度取り出してくるというスタイルが望ましくなります。
図にすると
という形ですね。今回はこのデータベースをAccessに置き換えていく方法を進めていきたいと思います。
エクセルをインターフェース、Accessをデータベースとして使うメリット
エクセルと連携するデータベースとしてAccessを使うメリットですがいくつかあります。
エクセルと相性が良い
同じMicrosoft Officeシリーズですから、これは当然ありますね。エクセルでもともと蓄積されてきたデータシートをそのままAccessに取り込むというのが簡単にできます。
次回の記事で簡単に説明をしていきたいと思います。
同一LAN内でアクセス可能
会社等のオフィスを利用を想定した場合、データの入出力を行うクライアントは各スタッフのローカルPC内のエクセルということになります。
例えばAccessデータベースをLAN内の共有エリアに保管しておけば、エクセルからそのデータべースに簡単にアクセスすることができます。
Accessの購入ライセンス数
なら、わざわざエクセルなどを経由せずに、直接Accessを使えばいいじゃない?と思われるかも知れませんが、Accessのライセンスは別購入になる場合が多いので、ソフトウェア購入費が高くつきます。
エクセルをインターフェースとすることでVBA経由でAccessのデータをやり取りができます。その場合は、Accessのライセンスは不要ですので、ライセンスの費用を抑えることができますし、一般的には皆さんエクセルのほうが使い慣れていることと思います。
Accessをデータベースとして使う際のデメリット
しかし一方で、いくつかデメリットもあるので、確認をしておきましょう。
1ファイル当たりの容量が決まっている
Accessに関する各項目の上限は以下のようになっています。
- ファイル容量:2GB以内
- テーブル・クエリ・フォームの合計:32768個
- 同時使用ユーザ数:255
- 1テーブル内のフィールド数:255
レコード数は無制限ですが、実質制限として最も引っかかりそうなのは、ファイルの容量2GBでしょう。
エクセルでどんどん重くなるよりはマシですが、データベースとしては割と心配になる容量です。
データ量がオーバーしそうな運用が想定される場合は、他の方法を検討するか、容量がいっぱいになったときの対策を用意しておくのが望ましいといえます。
同一LAN内からでないとアクセスできない
もともとエクセルからの移行と考えると、外部からデータベースにアクセスするというニーズは想定していない可能性もありますが、同一LAN内からのアクセスに限られます。
まとめ
以上でエクセルと連携したデータベースとしてAccessを選択するメリット、そしてその際の注意点についてお伝えしました。
次回はエクセルVBAでAccessデータベースに接続する方法について解説をしていきたいと思います。
どうぞお楽しみに!
連載目次:エクセルVBAでエクセルからAccessデータベースを操作する
エクセルと相性の良いデータベースとして第一候補として挙がるAccess。エクセルをインターフェース、AccessをデータベースとしてエクセルVBAを使って連携する方法とその様々なテクニックについてお伝えしていきます。- なぜエクセルとAccessデータベースを連携するのが良いのか、またその際の注意点
- エクセルVBAでAccessデータベースと接続する最もシンプルなプログラム
- 【エクセルVBA&Access連携】SQL文でデータを抽出する最も簡単なプログラム
- 【エクセルVBAでAccess連携】SQLのSELECT,FROM,WHEREによる様々なデータ抽出方法
- 【エクセルVBAでAccess連携】SQLのJOINを使って複数のテーブルを組み合わせてデータを取り出す
- 【エクセルVBAでAccess連携】データベースのテーブルにレコードを追加するシンプルな方法
- エクセルVBAでAccessデータベースに複数のレコードを追加する方法とその実行速度について
- 【エクセルVBAでAccess連携】データベースに特定条件のデータが存在するかどうかを判定する
- エクセルVBAからAccessデータベースのレコードを呼び出して修正して上書き更新する方法
- エクセルVBAでAccessデータベースの複数のレコードをまとめて上書き更新する方法
- エクセルVBAでAccessデータベースの複数のレコードを上書き更新する場合の実行速度について
- エクセルVBAでAccessのデータをORDER BYで並び替えをして取り出す
- エクセルVBAでADODBレコードセットをSortメソッドで並び替えする方法
- エクセルVBAでAccessデータをグループで集計して抽出するGROUP BY句と集計関数の使い方
- エクセルVBAでAccessデータを集合関数による条件で抽出するHAVING句の使い方
- エクセルVBAでAccessデータベースからFormat関数によるSQL文で特定の日付で抽出
- エクセルVBAでのAccessデータベース操作にトランザクション処理を入れる