初めまして。
株式会社インフォースの技術部長を勤めているike_inforce_devと申します。
弊社ではAccessのシステム開発を専門としており、SQLServerやAzureSQLdatabaseへのアップサイジングを得意としております。
世間では、ノーコード・生成AIなどが流行ってる横で、日々多種多様なAccessシステムの問い合わせを頂いており、ありがたい事に忙しい日々を過ごしております。
さて・・・前置きはこの辺にしておいて、
皆さん「クエリ」と聞くと何を想像しますか?
普通は、DBへの命令文なので「SQL」が思い浮かぶかと思います。
SELECT、INSERT、等々それぞれ構文が決まっておりますが、結合やサブクエリなどが絡むと中々覚えるのが大変ですよね。
ですが、AccessのクエリはSQLが書けなくてもGUI操作でデータを操る事が出来る優れものなんです。
クエリオブジェクトとして保存し、「クエリ実行」と命令するだけでいつでも設定済のデータを操る事が出来ます。
うはっ!!こりゃ便利!!神かよ!!!
って思いますが・・・
実は作成済のクエリオブジェクトを使って、更にクエリを作る事が出来るんです。
クエリオブジェクトでありつつ、新しいクエリを作成するときはテーブルのような扱いになるので、いくらでも階層深く作る事が出来てしまうんです。
どんなシステムでも、日々メンテナンスが発生します。
クエリの修正が発生した場合、1つずつクエリを開いて直す必要があるので、
メンテナンス性が非常に悪く、神 と思われたクエリが 悪 に変わります。
更にこのパターンはドキュメントが用意されていない場合も多いので、作った人しかわからない状態になります。
うん、恐ろしいですね( ^ω^)
という事で纏めです。
** 神の要素 **
-- SQLの知識不要でデータを操作出来る
** 悪の要素 **
-- メンテナンス出来なくなるリスク
最後に、声を大にして言わせてください。
クエリにクエリを重ねるのは止めよう!