Accessで使うクエリについて
私がAccessを使い始めたのは2年前という記事は最初に書きました。
社内システムがWindowsXPからWindow7に移行した時の
トラブルを解消することがきっかけで使い始めました。
その時に感じたことを書きます。
Accessのクエリ・マクロが大量のシステム
Accessにはクエリ作成機能があります。
他の担当者と相談した時もクエリウィザードを利用して作成することが
当たり前のように話をしていました。
ただシステムを開発するに辺りクエリやマクロが必要か?という疑問があります。
データベースを運用するにはクエリは必要な要素です。
ただAccessの様に仕様として存在するクエリは必要ないと思っています。
というのもAccessでクエリ作成をしていると他の言語で開発する際、応用が利きません。
私が最初にデバックを依頼されたときに困ったのは、まさにこの問題でした。
VBやVB.netではSQLを書くのが当たり前
元々VBでシステム開発をしていた自分でしたが、
その流れでVB.net・ASP.netで開発するようになりました。
その際データベースへのクエリはSQLで記載していました。
なのでクエリはSQLで書くのが当たり前の感覚でした。
実際開発する際、この辺りは相当勉強しました。
動かなくなったシステムはクエリ作成ウィザードなどを利用して作成されており
何が何だかさっぱりわからない状態でした。
SQLビューを見るとなんだよこれ?っていうSQLが出てきます。
Accessを利用しているとSQLを書く知識が深まるとは思えません。
デバックする時、すでに作られたクエリを修正するのは
慣れていないとはいえ、相当苦労しました。
デバック作業の時はSQLで書かれている方が楽。
人それぞれの感覚なので一概に言えませんが
私はそう思っています。
実際業務が止まっている中、クエリを修正する暇があるなら
全てSQLに書き換えた方が早いと判断した私は、現行BackUpをした上で
すべてSQLに書き換えました。システムが動かないので動作確認は
VMにWindowsXPをインストールした上で動作確認を実施しました。
実際作成済みのクエリを動作させると、その動作には感嘆します。
早いし正確だし、成程これは便利だと。
でもそれはAccess上でしか役に立たない知識だなと同時に思いました。
AccessのバックにSQLServerを使うにしても
Accessのクエリ機能を使っていればSQLの知識が無くても動作します。
でも知識としてはそこまでです。
AccessVBAだけの知識だけでは息詰まることは目に見えています。
今、クエリ作成ウィザードなどで作成して満足しているあなた。
SQLで書く癖をつけてみませんか?
「クエリを制する者はAccessを制する。」
そうじゃなくて大袈裟ですが
「クエリ(SQL)を制する者はデータベースを制する」
そういう感覚が必要なのではと思う今日この頃です。