Accessユーザーならよくお世話になっているであろう「クエリ」。これをシステムとして見た場合、コードの可読性が悪くなります。

以前解析したコードで、テーブルの更新はすべてクエリで行われているものがありましたが、クエリを呼び出すところはクエリの解読が必要で、解析の手間は掛かりました。ひどいことに、「更新クエリ1」「更新クエリ2」とかいう名前で、どのテーブルを更新しているんだかは「開いてからのお楽しみ」状態でした。間違えて「削除クエリ」なんて押してしまった日にゃあ・・!テンポラリのテーブル削除ならよいですが、そういう事故がないとは言い切れません。

SQLとクエリが混在している現場もありました。こんな状態なら行き当たりばったりで作ったシステムと言われても仕方ありません。


データ保護の観点、システムの保守性の観点から、SQLを使い、コードの可読性を高めておくことが望ましいと言えるでしょう。なお、AcessDBへのアクセスに限らず、DBアクセスは可能な限り標準的なSQL文を使った方がいいです。

まあ、関数やストアードプロシージャなどをどうするか、というあたりにも関わってきますのでそれほど単純ではありませんが、データベースのバージョンやDBMS自体が変更になった際にも変更が最小限に抑えられることになります。

2000年問題の調査ツールを作ったとき。Excel VBAでフォルダ内のExcelブックの全シートを印刷する処理を作ったことがある。


ブックサイズは大きくないが、シート数は結構ある。シート内のページはほとんど1ページで、たまに2ページあるものがある程度であった。

開いてシートを順々に印刷して閉じ、また次のブックを、と単純に処理を作り実行させたが、どうも印刷が止まってしまうようである。調べてみると、プリンタに印刷ジョブがわんさか溜まっている。


つまり、印刷ジョブが許容量を超え、スプールがパンクしてしまったらしい。


1シート印刷すると15秒程度Sleepさせることにして回避した。


機器の能力(スプールの容量や印刷処理能力)には注意しないとな、と感じた仕事であった。


他所のブログを見ていると、どうやら高校でVBAのテストがあったりするらしい。


シラバスを見る限りはVBAが出てきているようではない。確か、教育用には「インタプリタ言語が望ましい」ように定義してあったように思う。なら確かにExcel VBA はうってつけかもしれない。


しかし、どういう教育をしているのだろうか?気になる。