2011年2月25日金曜日

MS Access フォーカス喪失後イベント失敗事例

 
きっとここに書くことは普通は常識なんだろうけど、失敗事例として忘れないように記録

MSアクセスを使った業務アプリで簡易的なログイン画面を用意して運用していた。

ログイン画面にユーザー名入力欄、パスワード入力欄、ログインボタンの3つを用意 ログイン後はログイン画面は消えるという仕様

ログイン画面の目的は、
  • もちろん作業者の特定
  • セキュリティ強化
  • 実行権限レベルの実装
  • それ以外に常に一人のユーザしか使えないようする
というのもあった。

この「常に一人のユーザしか使えないようする」の実現方法として
  1. 誰もログインしていない状態で有効なログイン者が利用した場合、その情報をテーブルに記録しておく
  2. この状態で、他者が利用しようとしてログイン画面を表示させた場合、既にログインしている利用者がいるという趣旨のメッセージを表示してアプリケーションを終了する
と言う仕組みだった


ここで、問題は

  1. 利便性を高めるためにパスワード入力のテキストコントールのフォーカス喪失後イベントにログイン処理するようにプログラミングしていた
  2. しかし、ウィンドウ右上の×ボタンで終了の時にもフォーカス喪失イベントが発生する
  3. そのため、VBAでエラーが発生してしまう


やりたかったことは、パスワード入力後、ログインボタンを押す手間を省くという機能だったためkeydownイベントでやることにした。
 
教訓「フォーカス喪失で処理する内容は吟味すべし」







新品価格
¥0から
(2011/2/26 01:30時点)

0 件のコメント:

コメントを投稿

デル株式会社

最近人気の投稿