Tips-02.システムの標準化へ

メニューによってフォームの外観や操作手順が変わってしまうと、操作者は混乱してしまいますよね。メッセージの文言なども統一しておいた方がいいでしょう。
開発者にとっても標準化された仕様を持っているとメンテナンスや新規開発が楽になります。
標準化に向けた作業をまとめてみました。

1.フォームの外観

(1)入力フォーム

  • フォームを、ヘッダー、詳細、フッターに分割する。
  • ヘッダー領域にはタイトルを表示する。
  • 詳細領域には入力項目のテキストボックスとラベルを作成する。
    参照するテーブルがある場合にはリストボックスで一覧表示する。
    ダブルクリックでリストから選択入力できるようにする。
  • フッター領域には、操作を指示するコマンドボタンを配置する。
    コマンドボタンにはPFキーを割り当てる
    コマンドボタン名も統一しておく。
  • 印刷は開始値と終了値の範囲を指定するようにする。
    印刷指定フォームのキストボックス名は、st~、ed~ のように決めておく。
    印刷はプレビューとする。
  • フォームのプロパティの、ポップアップは「はい」とする。

フォームプロパティの「移動ボタン」や「閉じる(X)」を利用する場合は、上記ようなフッター に配置したコマンドボタンは不要になるでしょうし、処理内容によっては必要となるコマンドボタンも異なってくるとは思います。臨機応変に対応してくださればと思います。
しかし、「フォームを閉じる」ボタンはすべてのフォームで必要となるはずです。
このボタンを作成するだけでも、画面は引き締まった感じになると思います。
PFキーも統一仕様として規定すると使い勝手がよくなりなすので、是非活用してください。

(2)メニューフォーム

このサンプルメニューは「タブコントロール」を利用して処理をグループ分けしています。
メニューの外観が標準化されていると、自社のシステム感が増すような気がします。

2.イベント処理

(1)カーソルの操作

ボタンが同一領域内にある場合はタブオーダーで制御できますが、領域外の場合は操作で移動しなければなりません。操作の流れが想定される場合はイベント処理でカーソルを移動させておくと作業効率が上がります。

例えば、あるテキストの入力後はレコードを登録することが予想される場合、そのテキストのフォーカス喪失時に下記のコードを記述します。フォーカスが当たっているとエンターキーの押下でクリックしたことになります。

Private Sub テキスト_Exit(Cancel As Integer)   ’フォーカス喪失時
Me.登録.SetFocus ’登録ボタンにフォーカスを当てる
End Sub

(2)コントロールの書式変更

今どこにカーソルが当たっているのか分りにくい時があります。
フォーカスの取得時にボタンの標題文字の形態や、背景色などを変えるとわかりやすくなります。フォーカスの喪失時には元に戻す必要がありますが、操作の道標になります。
コードをマクロ化しておくとプロパティの設定も、メンテナンスも楽になります。

下記コードでは、コマンドボタンの場合は標題の文字の形態を、テキストボックスの場合は枠の書式を変更しています。

標準モジュールにFunction Code を作成してマクロにします。
コマンドボタンの場合は、
フォーカス取得時にマクロ1
フォーカス喪失時にマクロ2
テキストボックスの場合は、
フォーカス取得時にマクロ3
フォーカス喪失時にマクロ4
です。

(3)帳表の拡大表示

帳票をプレビューで作成した時は、縮小された状態で表示されます。印刷内容を確認するためには拡大表示しなければなりません。
「開いた時」に最大化し「閉じた時」に元に戻すイベントを追加すると手間を省くことができます。

Private Sub Report_Open(Cancel As Integer)  ’開いた時
DoCmd.Maximize
End Sub

Private Sub Report_Close() '閉じた時
DoCmd.Restore
End Sub

3.共通仕様と標準仕様

共通仕様と標準仕様はどう違うのか、と問われると説明に窮するのですが、誤解を恐れずおおざっぱに説明すると、共通仕様はパッケージ化された機能であり、標準仕様はシステムとしての統一性や互換性を確保するための仕様だと言えるかと思います。

Access のウィーザードはまさにパッケージ化された機能です。上記のサンプルコードもそのまま共通して使用するように規定するならば、共通仕様として定義できます。つまり完結した機能をもっているのが共通仕様です。

しかし、システムの目的は何か、そのためにはどのような処理が必要か、データの流れや個々の操作手順はどのようにするのか、などは共通仕様としてまとめることができません。

システムは通常は数多くのプログラムの連携で成り立っています。多くの人が携わる場合もあります。そこで、必要となるのがシステムの構築のための標準的な仕様です。
マスターテーブルやデータテーブルの作成の仕方だけでも、パターンがあれば参考になるでしょうし、データも取り出して利用できるかもしれません。さらに、これらに関連した共通仕様があれば嬉しいですね。

標準仕様は一気に確立するものではありませんが、そこを意識しつつ、便利だと思われるツールがあれば共通仕様として保存していくといいと思います。