第144夜:アクセス2000 印刷のちょっとした工夫

まず患者データベースのもとになるテーブル(1-4T)を次の図のように設計しました。 ここにはすべてのフィールドを表示できていませんが、既往歴と現病歴というメモ型フィールドが含まれています。これが特に印刷したい部分になります。

次にこのテーブルをもとにしてクエリー(1-4Q)を作ります。

このクエリー(1-4Q)をもとにして入力フォーム(1-4F)を作ります。(下はデザイン画面)

次に1-4Qをもとにしたクエリー(1-4Q2)を作りました。ここで患者ID番号と入院年月日を式ビルド機能を使ってクエリーの選択条件に組み込みます。ID番号のみでセレクトさせると再入院を繰り返す症例が複数抽出されてしまいます。しかし同時に入院年月日もアンド検索させることでたった一つの同じレコードを抽出することができます。具体的には1-4Q2の設計画面は次の図のようになります。


この1-4Q2をもとにしてレポート書式(1-4R)をデザインしました。


あとは、フォーム1-4Fから上記のレポート書式(1-4R)を開くマクロを作って1-4F上のボタンに貼り付けます。2ページの入力フォーム(1-4F)に貼り付けてある印刷ボタンがそれです。
注:解説本を読むと、WHERE句を使って別のフォームを開くときにレコードを変えないようにできると書かれているのですが、僕のデータベースではうまく動きませんでした。それに患者ID番号はさっきも言ったように2つ以上同じ数字が存在する可能性があります。WHERE句でたった一つのレコードを抽出するにはオートナンバーリングされているレコードIDをもとにする必要があります。しかしこの数字は1-4Fでは表示していません。不可視属性に設定して,,,なども考えましたが面倒そうです。僕の方法なら2つのフィールド値をアンド形式で掛け合わせた検索をすることでたった一つのレコードを抽出できます。しかしファイルメーカーProでは簡単にできることをアクセスでやろうとするとここまで複雑な処理が必要なのかと、ちょっと考えさせられてしまいました。


INDEXへ戻る 1つ戻る 1つ進む ホームへ戻る