私がAccessを使い始めたのは2年前という記事は最初に書きました。
社内システムがWindowsXPからWindow7に移行した時の
トラブルを解消することがきっかけで使い始めました。
その時に感じたことを書きます。
Accessのクエリ・マクロが大量のシステム
Accessにはクエリ作成機能があります。
他の担当者と相談した時もクエリウィザードを利用して作成することが
当たり前のように話をしていました。
ただシステムを開発するに辺りクエリやマクロが必要か?という疑問があります。
[amazonjs asin=”4883378888″ locale=”JP” title=”Access マクロ & VBA 開発工房 2013/2010/2007/2003/2002/2000 対応”]
データベースを運用するにはクエリは必要な要素です。
ただAccessの様に仕様として存在するクエリは必要ないと思っています。
というのもAccessでクエリ作成をしていると他の言語で開発する際、応用が利きません。
私が最初にデバックを依頼されたときに困ったのは、まさにこの問題でした。
VBやVB.netではSQLを書くのが当たり前
元々VBでシステム開発をしていた自分でしたが、
その流れでVB.net・ASP.netで開発するようになりました。
その際データベースへのクエリはSQLで記載していました。
なのでクエリはSQLで書くのが当たり前の感覚でした。
[amazonjs asin=”4798144452″ locale=”JP” title=”SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)”]
[amazonjs asin=”4839961263″ locale=”JP” title=”ビッグデータ分析・活用のためのSQLレシピ”]
[amazonjs asin=”4774173010″ locale=”JP” title=”SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)”]
実際開発する際、この辺りは相当勉強しました。
動かなくなったシステムはクエリ作成ウィザードなどを利用して作成されており
何が何だかさっぱりわからない状態でした。
SQLビューを見るとなんだよこれ?っていうSQLが出てきます。
Accessを利用しているとSQLを書く知識が深まるとは思えません。
デバックする時、すでに作られたクエリを修正するのは
慣れていないとはいえ、相当苦労しました。
[amazonjs asin=”4798049956″ locale=”JP” title=”2016/2013/2010/2007対応 Accessクエリ ビジネス活用事典”]
[amazonjs asin=”479802743X” locale=”JP” title=”2010/2007対応Accessクエリ&フォーム&レポート辞典 (Office2010 Dictionary Series)”]
デバック作業の時はSQLで書かれている方が楽。
人それぞれの感覚なので一概に言えませんが
私はそう思っています。
実際業務が止まっている中、クエリを修正する暇があるなら
全てSQLに書き換えた方が早いと判断した私は、現行BackUpをした上で
すべてSQLに書き換えました。システムが動かないので動作確認は
VMにWindowsXPをインストールした上で動作確認を実施しました。
実際作成済みのクエリを動作させると、その動作には感嘆します。
早いし正確だし、成程これは便利だと。
でもそれはAccess上でしか役に立たない知識だなと同時に思いました。
AccessのバックにSQLServerを使うにしても
Accessのクエリ機能を使っていればSQLの知識が無くても動作します。
でも知識としてはそこまでです。
[amazonjs asin=”B00OOGF7YA” locale=”JP” title=”TECHNICAL MASTER よくわかるSQL Server 2012 データベース構築・管理入門編”]
[amazonjs asin=”4798048402″ locale=”JP” title=”SQL Server 2016データベース構築・管理ガイド Enterprise対応”]
AccessVBAだけの知識だけでは息詰まることは目に見えています。
今、クエリ作成ウィザードなどで作成して満足しているあなた。
SQLで書く癖をつけてみませんか?
「クエリを制する者はAccessを制する。」
そうじゃなくて大袈裟ですが
「クエリ(SQL)を制する者はデータベースを制する」
そういう感覚が必要なのではと思う今日この頃です。
