Accessを上手に使おう、ということでおおまかな方向性を2つ記載した。

その1
その2

しかし、「どうしてそんなことを?」と思われる方もいらっしゃるでしょう。

体験している人なら分かるが、そうでない人にも理解、納得してもらうようでなければ、ここに書いた考え方は普及しないだろうと思いますので理由を書いておこうと思います。

処理を移行する際に限った話ではないですが、現在の処理がどのようになっているのかを理解しやすい状態になっていると、保守・メンテナンス、修正、引き継ぎなどを行う上での作業効率がよいです。しかしながら現在のAccess(に限った話ではないですが)の機能をなんとなく利用していると、「現在の処理がどのようになっているのか」を把握するのに時間がかかるうえ、見落としなどが発生することがよくあります。手間がかかるほどミスが増えるのは必然です。

例えば
>・データベースに関して
>  対象:テーブル、クエリ

と書いています。

選択系クエリに似たものとしてビューというものが一般的なDBMSにはあります。しかし更新をサポートするものはないわけではないようですが、あまり聞かないうえ実務で使っているのも見ません。
SQL文をベタ書きするにせよ、パラメータを渡して組み立てるにせよ、ソースコード内や外部のテキストファイルを「検索」すればSQL文が洗い出せます。しかし、クエリの中にあるといちいち開いてみなければならない、という手間がかかります。
中には上手にクエリを整理してる場合もありますが、多くの場合、いい加減な命名やいい加減な安全策しか採られていないのが現実です。

データが変更(作成、更新、削除)される契機はどこなのか、ということを把握するのは非常に重要なことなのです。それが読み取りにくい、分かりにくい、というようでは個人でずっとお守りをしていくなら別ですが、引き継いでいけるシステムにはならないでしょう。

余談かもしれませんが、システムはブラックボックスであるとよく言われています。しかし、それはブラックボックスにしたからブラックボックスになっただけで、今はきらいな表現ですが「見える化」ということを推進されています。上場企業では内部統制の一環として基幹のシステムがブラックボックスではいけないようにもなっています。
別に基幹のシステムじゃなくても分かりやすくすれば、保守、引き継ぎ等はうんとラクになるはずなのです。これはAccessを捨て去るか否か、といった以前の問題なのです。


是非とも保守、運用の面に重点を置いてほしいと思います。
もうひとつ、大事なことがあります。

・Jet エンジンではなく ADO か DAO など、SQL文を使うようにする。

です。

データベースに慣れていない人にとってJetは扱いやすいかなと思いますし、Accessで処理をたくさん書いている人もJetエンジンをよく利用されているのではないかと思います。しかし、一般的なDBMSではSQL文を使いますし、AccessでもSQL文は使えます。
移行のためにはJetエンジンを使わない、という大きな決断をしなければならないでしょう。それによりと内部処理の記述も相当変更が必要でしょう。
この変更が移行時に大きな障壁となります。Accessで作成した情報資産を先々も生かしていくには、Jetエンジンからの脱却が必要でしょう。


参考まで、Windows OS の 64 ビット版では Jet エンジンをサポートしていないようです。マイクロソフトが対応すればすむ話なのでしょうけれど、Jetが動かないので32ビットOSを使い続けているという話は今の仕事場で直接聞いたことがあります。
6/26(日)に情報処理技術者試験の「システム監査」を受験しました。会場は東京都国立市の一橋大学。この国立という町、結構おしゃれな町ではないかなと思う。仕事で八王子に時々出向くが、仕事仲間曰く、八王子は美人が多いという。思うに国立の方が多いような気がした。もちろん、好みの問題や、私が居た少しの時間ではサンプリングとして適切ではないことは付け加えておく。


さて試験の話。

今回は午前1(ローマ数字はMacでは化ける、という伝説があるのでアラビア数字で)を免除。
午後2は、「絶対大丈夫」というのが25問中11問。後で答え合わせしたら間違いが7問。せめて間違いを5問以内に抑えたかった・・。

午後1は問題により難易度が異なったのではないかな、と思った。昔は90分で3問選択だったが、このところ90分で2問。問題文と設問をすべて読み、優しそうな2つを選んだ。これはクリアできそうだ。

午後2は論文。今思うと、ちょっとマネージャーよりの立場で書いてしまったきらいがある。そこが心配。


部屋は小部屋で、午前2~午後2まで受験者数が変わらなかった。通常途中であきらめる連中がいるのに。