Accessとユーザー管理

なんかよくありますよねえ。こんな画面。

所詮Accessですから、こんな物作った所で・・・ってのもあるかもしれませんが、凝ったことをやろうと思えば必要になってくると思います。

登録してある人にソフトを使わせるだけではなく、その人によって表示される画面を切り替えたり、押せるボタンに制限をかけたり、たったこれだけの画面ですが、非常に重要だと思います。

そりゃ自分しか使わないならいら必要ないかもしれませんが、自分以外の人にも使わせたいなら作るに越したことは、と思います。

私の場合は特に、

「データの削除の権限」を持たせるかどうか

の判別に使っています。

データベースって、入力させるより、「一度入力したデータを削除させるのかさせないのか?」ということのほうが、よほど重要だと思うのです。

そりゃそうですよねえ。せっかく入力したデータを

「あ、間違えた。」

で消されてはたまったもんではありません。消すのは一瞬で出来ますけど、復活させるには基本再度入力です。しかもそれは「何を消したか」分かれば出来ますが、下手をすると間違えて消したことにも気づかないということにもなりかねません。さらにそれが一度に大量にデータを削除してしまったとかになると・・・・ああ恐ろしい・・・。

そういった事態を防ぐためにも「ログインユーザー」によってはじめから削除出来なくしてしまう、削除したければ「管理者に連絡」みたいな流れを作ってしまうことも大切だと思うんです。

そりゃご立派なシステムは「ログ」を全て取ってたりするので「誰が何時どのデータを削除した」なんて事も記録されてるのかもしれないですけど、その立派なシステムにも「ログイン」画面はありますよね。

まあ、削除ボタンを作って「パスワード」を入力しなければ削除が実行されないようにしてしまうという方法もありますけど。

同様に「修正」も。

私の職場で実際あったのですが、とある患者データがなぜか「消える」というものでした。

まあ、実際の入院患者ではなく病棟が病棟用として請求するために仮に入れている「患者名=病棟名」というデータだったのですが。

ホントに長い間原因が分からなくて、誰かが間違えて消したのだろうと思い、その時初めて「削除」出来ないようにしたのですが数ヶ月後、ふと気がつくと消えている・・・。

何でだろう・・・それも毎回同じ病棟名のデータだけ・・・。

で、ついに発見しました。どうしても分からなかったので患者データ画面だけ修正や削除の記録を保存するようにしたのです。それで分かったのは、なんと・・・・新規で登録しなければいけないのに、なぜか1人の職員が修正していたんです。

その職員呼んで、「ちょっと新規患者登録してもらえる?」と頼んでみた所、思いっきり「修正」ボタンを押して、患者の氏名を消し始め、新しい患者のデータを上書きし始めるではないですか!正に「犯人はお前だ!」ですよ。

「もしもし?何やってんの?新規って言ったよね?それ修正だけど?日本語読めない?」と言う台詞をそれはもうやんわりと言ってあげると、そこで初めて「あっ!」と気がついたみたいで。

消えるのはその職員がたまに入力する数ヶ月に1度、誤操作によって起こっていたわけです。で、なぜ何時も同じ患者データが消えていたかというと、患者データを開くと「あいうえお」順で開くようにしていたので、何時もそのデータが一番上にきていたからでした。

こういうことがあったので、修正ボタンを押しても修正できる箇所に制限をするようにしました。

※せっかく作ったログイン画面ですが、ありがちなのが「ログアウト」しわすれて、次の誰かが続けて入力してしまうという状況です。大したことしてないのかもしれませんけど。

「入力終わったらログアウトしてください。」

っていっても無駄です。私でも忘れるときあります。

やはりこういった仕組みを使うならば、時間経過で自動ログアウトの仕組みも必要だと思います。

Accessにはタイマー時イベントが設定できるので、一定時間経過した場合に画面を閉じる等の設定ができます。

検索すればすぐに見つかりますので利用してみてください。