よつやTips

元IT技術者がおくる情シス超入門:VB.NET / SQLServer / 弥生製品 / ひとり情シス

超初心者向け!ACCESSとは?エクセルとの違いをわかりやすく解説

こんにちは、四ツ屋です。久しぶりの投稿です。

 

最近仕事でMicrosoft ACCESSに触れる機会が多く、またその業務のなかで意外と

「エクセルはわかるけどアクセスはちょっと」

という方がいました。

たしかにエクセルと見た目が似ている分だけはとっつきにくい印象があるのかもしれませんが、使ってみるとデータベースとしては利点もあります。

今回はアクセスについて少し紹介したいと思います。

 

■アクセスとは?

Microsoft社のファイル形式データベース管理ソフトです。

表計算ソフトであるエクセルとは異なっていて、こちらはリレーショナル・データベースです。そのため、ワークシートという概念とはまったく異なっています。

データベースは表計算ソフトとは違い、格納するデータの内容や形式を列(カラム)ごとに先に決めています。

たとえばエクセルではセルごとにデータ形式を変えられますが、アクセスではセルではなくフィールドという概念になるので、一箇所だけデータ形式を変えるというようなことはできません。

※フィールドとはなんぞや?ということについては詳しくはこちらの記事をごらんください。 

 

エクセルに慣れた方が初めてアクセスを使うときに戸惑うのはそこだと思いますが、データベースを始めるにあたっては機能の一つ一つを理解していくことで、親しみやすいのでは、と個人的に感じます。

 

■アクセスのメリット

アクセスを使う利点としては、大容量のデータを集計したり検索するのが楽であること、それからデータベースであるので集計やピボットが楽にできることかと思います。

※楽、というと慣れによって個人差はあるかもしれませんが…

また、テーブルの列ごとに形式が決まっているため、作業をルーチン化するにはもってこいです。エクセルファイルはCSVファイルのインポートもあまり考えなくてもできてしまう。すごい。

何より、セルの結合ができないぶん、逆にデータの整合性は増していきます。エクセルは自由度が高すぎて、好き勝手にデータを入れられてしまうケースが多いのです。

 

一方、SQLServerなどと比較すると、様々な機能が安価で手軽に使えることがメリットとして挙げられます。エンジニアではなくてもライセンスさえあれば使えますし、環境構築するという面倒な手順が必要ありません。

また、アプリケーションを実際に稼働させる際にはSQLServerだけでは難しく、データの入力、編集、削除といったインターフェイスを使いたいと思ったときに、ACCESSならVBAが利用できます。

 

何より、バックアップの手間が必要ない。ファイルをコピーするだけ。そこに気づいたとき、「もしかしてアクセスって初心者向けの間口広めツールとしてはそこそこ優秀なのでは?」と感じ始めました。

 

個人的にはSQLServerVB.NETに慣れていたので最初は「アクセスクソだな~~~」と思うことは多々ありました。今もときどきあります。

 

しかし初心者向けに作り、自分以外がメンテすることになる、という制約の多い状況では「意外とアクセスも捨てたものではないかも?」と思うケースもしばしば。VBAなら少しプログラムをかじった人なら通る道なので、間口が広い。

 

■アクセスを使うデメリット

とはいえ、ですよ。頭を抱えることもしばしば。

データベースとして廉価版だし、Office製品だから書籍も山のようにあるし使ったことある人も多いし、SQL書けなくてもクエリ作れるし、クエリ保存しておけばなんとでもなるし、帳票作れるしVBAでフォームも作れるし、意外といいやつじゃねぇか?と思ったけれど。

でも、でも!

腹立つことは意外とあります。

ファイルサイズが2GBを越えるとファイルが使い物にならなくなるとか。

SQLをきれいに書いても改行コードがなかったことにされるとか。

SQL書いてても予約後や関数が色分けされないとか。

そもそもSQLに癖があって使いづらいとか。

ROW_NUMBER関数も使えないし、CASE WHENはSWITCHで読みづらいとか、そもそも結合できるテーブルに限りがあるとか。

※ROW_NUMBERもSQLServer2000じゃ使えませんでしたけどね。

ちょっと長いクエリを書くと、「クエリが複雑すぎます」って怒られたりとか。

VBAだと文字列の全角半角を認識してくれないとか。

※実際あった話です。全角カンマと半角カンマを認識してくれなくてハゲるかと思いました。

 

 

■じゃあ結局、アクセス使ったほうがいいの?悪いの?

こう書くと「やっぱりオメー、アクセス嫌いなんじゃねーか!」と思われそうですが、そうではないのです。いや好きでもないですけど。

どのツールにもメリット・デメリットあります。

エクセルでもできる、アクセスでもできる、RDBMSでもできる。

じゃあどのツールを使うか?となったときに私が重視したのはメンテするのが誰か?運用するのは誰か?ということです。

別に、一人で作って一人で使う、自分ひとりで完結するなら何を使ってもいいんですよ。ぶっちゃけ。

 

でも、自分以外が関わる状況で、

 ・運用する人

 ・メンテする人

これが誰で、どういうスキルがあるのか、どういう制約があるのか?ということを考えながらツールを作っていると、存外アクセスも悪くないんだなぁと感じます。

でもやっぱり同時に、アクセスでは出来ないことにブチ当たって悶絶もしますけどね!