薬剤師とAccessと個人データ管理
まず何で検索したいのかによって画面デザインも変わってくると思いますが、あくまで作成するのは単純な検索画面です。複数の条件で検索したい場合は素直にフィルタ機能を利用するか、自分でがんばってみましょう。
フォームの新規作成から、カルテ番号、ふりがな、氏名、表示名で検索できる画面を作成してみようとおもいます。
表形式を選択し、名前を付けてフォームデザインの編集。
「KK」っていう名前にしてみました。
ホームヘッダーを広げてテキストボックスを1つ配置して、コントロールの名前も「KK」にしてみました。
フォームのレコードソースを選択して
抽出条件に
Like "*" & [Forms]![KK]![KK] & "*"
と入力します。 これで検索フォームのテキストボックスに入力された値を「含む」となります。
あとは同じ条件を1段ずらしながら入力すると
閉じようとすると変更保存の確認ができますので「はい」を選択
続けて検索条件入力用のテキストボックスの更新後処理にイベントプロシージャを選択 し
Me.Requery
と入力。これで条件入力後、絞り込みが実行されます。
このRequeryコマンド、フォームに表示しているデータを更新する場合に非常によく使います。
この画面で登録、修正、削除はしてほしくないので編集ロックとフォーム全体の追加、削除プロパティを変更しておきます
更新の許可まで「いいえ」にすると検索条件まで入力できなくなりますので注意してください 。
KIDの可視を「いいえ」にして、そのあたりにコマンドボタンを配置、ウィザードが起動したらキャンセルしてください。
ボタンを押したときの処理を書いていきましょう。
今回の処理は
1、 もし個人データ画面ですでにフィルタがかかっていたら検索できないのでフィルタを解除する。
2、 個人データ画面から今選択した個人IDを探す。
3、 検索画面を閉じる。
というような処理をすればよいと思われます。
こんな感じで書いてみました。
今回はDoCmd.FindRecord っていうの使ってますが、分かりにくければ先のページで紹介したようなフィルタ使ってもいいと思います。
画面を閉じて個人データ画面の検索ボタンに検索画面を開くプログラムを書きましょう。
2行目の
Forms!KK.KK.SetFocus
は、画面が開くと同時にカーソルを検索条件入力部分に移動させるためのコマンドです。
これで個人データの入力、修正、検索と、最低限必要なものは出来上がったように思いますが、あとひとつボタンがありません。そう、削除ボタンです。
データベースは基本的に1度登録したデータを簡単に削除するものではないと思います。
明らかな入力ミスという場合はいいと思いますが、その場合は管理者がデータベースを開いて削除を実行するようにし、むしろ削除ボタンは無い方がいいのかもしれません。
とはいっても、やはり削除ボタンは管理者からしてもある方が便利なので一応作成しておきます。