薬剤師とAccessと個人データ管理
![](https://www.google.com/images/icons/product/drive-32.png)
続けて修正画面を作成していきます。
作り方はほぼ同じですが、登録画面と違い、修正ボタンを押すと修正画面が開くと同時に元データが入力された状態になってくれなくては困ります。そこで修正ボタンのイベントに
このようになりました。
同じようなことを繰り返しますのでコードのコピーと置換をうまく使って作ってください。
ちゃんと動くか試してみましょう。
では修正画面の修正実行ボタンを作っていきましょう。
基本は今までと同じで代入すればいいのですが、登録画面と少し違い、修正後のデータでカルテ番号が重複しないか調べる必要があります。
修正中のデータ以外で、すでに登録していないか?という複数の条件で調べるわけです。
クエリの名前は「KDSNO」となっています。後から分かればなんでもかまいません 。
“<>”は○○以外という意味で利用します。これで
「修正画面で修正中の個人ID以外でカルテ番号が同じものを表示せよ」
ということになります。当然あってはいけません。
これを修正画面のボタンを押したときのDcount関数に組み込めば、カルテ番号の重複登録を防ぐことができるわけです。
クエリを作らなければ
If DCount("KNO", "KD", "[KID]<>[Forms]![KDS]![KID] AND [KNO]=[Forms]![KDS]![KNO]")
でいいのではないでしょうか。
これで登録、修正が一応できるようになりました。
あとは検索画面を作ってあげるとなんとなくソフトとして利用できそうです。
ただ、Accessにはもともとフォームフィルタという機能が備わっており、これを使えば検索で困ることはほぼ無いと思います。フォームフィルタの使い方を使う人全てに説明しないといけませんが。
また、個人的には画面を大きく使いたいことが多く、そのためには最近のofficeのリボンは邪魔なので常時表示はしたくないところなのですが、そうすると検索のたびにリボンを表示させ、フォームフィルタを選択し・・・となってくるため画面をクリックする回数が増えてしまいます。
使い勝手というものを考えるなら当然検索画面は作っておいた方がいいと思われます。
コンボボックスを利用した方法もありますが、これは個人的にお勧めしません。理由は先に書いた通りです。
ということで検索画面を作ってみましょう。