Access製のシステムを仕上げすぎない

MS Accessを使って何かの情報システムを作ろうとしたときに、変に「仕上げたい」という欲望?を感じさせることがあるようです。

Accessは、WordやExcelなどと同様、色々な機能がメニューバーやサイドバー、またフォームのフッター部などに配置されており、必要なときにそれらの機能を便利に呼び出しながらデータ操作などを行えるようにできています。

ですが、これらを一切表示させたくない、という要望を述べられることが、経験では意外と珍しくありませんでした。

あるAccessプロジェクトを起動すると、特定フォーム以外の操作が一切できないような(モーダルって言います)状態の初期画面が自動的に現れ、そこで必要な機能を実行するためのボタンを押す。すると、その次に出てきた画面もモーダル設定になっており、そこで許された操作以外を行わせない。そんな作りに、あえてしたいというのです。

しばしば、帳票の印刷ボタンがそういったフォーム上に配置されており、サイドメニューから帳票を選んで起動するだけで本来足りるのに、専用のコードが書かれたそのボタンを押して帳票を印刷するという操作しかさせてもらえない。なんなら帳票はプレビュー表示を飛ばしていきなりプリンタに送られてしまうよう「自動化」されており、いったん画面上で確認するということが許されない。そんな例もあります。

データ入力フォームも、本来ついている入力内容反映ボタンや編集キャンセルボタンをあえて隠して、専用に配置したボタンを押すことでしかそれが実現されないか、あるいはそういった操作自体が許されなくしてほしい、とも。TABキーで入力枠のフォーカスが移ることさえ禁止させてほしい、なんてこともありました。

まるで、Accessのいくつかの機能を禁止して、同じような機能、しかも劣化版を別途に作り直しているかのようです。

意図しない操作をユーザーが行うことで、本来設計したデータ操作のフローを乱してほしくない、というのが、たぶんこういう作りにしたいときの動機なのでしょう。想定した操作だけをしてほしいし、それ以外のことをやってエラーを起こしたあげく、開発者のせいにされたくない、ということですね。

使う側のユーザーにとっても、なにやら「よく仕上がった」仕組みが実現したように思えて、なんなら最初は満足感を感じることもあるようです。

筆者は、できるだけAccessらしいたたずまいを残した状態の成果物を残すほうが望ましいと思っています。一見して「素」の状態に近く見えても、ちゃんと左端にはフォーム一覧やレポート一覧が出ていて、それを、Accessの本来のマナーに従って操作するという作りにすればよい。ちまたにたくさん出回っている、Accessの操作ハウツー本とそっくりな見た目や挙動を保っているわけですから、そういう本が、システム操作マニュアルの一部を兼ねることができるのです。

プロジェクトの本来の姿は別途バックアップを作っておけば、利用者がうっかり変な操作を加えてしまったフォームや帳票をあとで元に戻すことは簡単ですから、その点も過剰な心配は不要でしょう。

何しろ、本質的に必要な部分に集中して、あとは凝りすぎないのがよいです。