• 締切済み

アクセス設計について

こんにちは。初めてお教えを請います、よろしくお願いします。 医療機関の予防注射を受けるデータベースを作りたいのですが、もっとも肝心なのが生年月日と注射名を聞いたときに複数ある注射の適応年齢に合致しているかを確認できて、合致しなければエラーを表示する機能が欲しいのです。例は「麻疹」と指定され生年月日を聞いた時に16歳~17歳(4月~3月まで)になっていないと受付不可に自動的になる画面を作成したいです。使うのは素人の女性職員です。基本的なテーブルと入力フォームは作成できましたがこの期間指定が理解しきれません。フォーム画面で設定ができるのでしょうか?おおざっぱな内容で恐縮ですがよろしくお願いします。

みんなの回答

noname#192382
noname#192382
回答No.2

サンプルをお見せするテクニックが私になくて申し訳ありません。 ポイントはクエリーを用いて、上限年齢の人の生年月日と下限年齢の人の生年月日をdateadd関数を使って計算して求め、二つの生年月日と受付の人の生年月日と比較して、範囲内にあるかどうかの判定をして範囲内の人だけ表示するようにすれば良いわけです。

noname#192382
noname#192382
回答No.1

手順 (1)テーブル2つ受付テーブルと適用テーブル。受付テーブルには氏名、生年月日、注射名の3つのフィールド。適用テーブルには注射名、適用年齢下限、適用年齢上限の3つのフィールド。 (2)リレーション 二つのテーブルを注射名によって結ぶ。 (3)フォーム受付フォーム 受付テーブルにデータ記入 (4)クエリー作成 受付クエリーまず5つのフィールド。受付テーブルから3つと適用テーブルから下限年齢と上限年齢。 (5)クエリー計算 式1=下限年齢の生年月日、式2 上限年齢の生年月日、式3 IIfを使って下限年齢より上ならば1、式4 IIfを使って上限年齢より下ならば1、式5 式4*式5 ➅マクロ 判定マクロ 受付クエリーを開き、条件により分岐する。式5が0ならば適用外とメッセージ、式5が1ならば適用とメッセージ。 (7)フォーム 判定 コマンドボタンをつくり、判定フォームを開く。 実際に使用するときには-------    省略します。

関連するQ&A

  • アクセスでの日付入力について

     アクセス2000を使用しています。フォームで日付(受付日)を 入力する際に、○年○月○日のそれぞれをコンボボックスで選択 できるようにと考えています。でも私が思いつく方法だと、保存先 のテーブルには「受付年度」、「受付月」、「受付日」の3つの フィールドができてしまいます。そのテーブルで内容を確認する こともあるので、見た目にはあまりよくありません。  これを何とか、フォームでは3つのテキストボックスに分かれて いても、保存先では「受付年月日」としてひとつにまとめて 表示させることはできるでしょうか? 方法があれば教えてください。 説明がわかりにくい場合は、質問をお願いします。

  • Accessの関数について

    Accessのフォーム作成から氏名、生年月日、年齢といったかんじでデータを作成し、生年月日を入力したら年齢も自動的に表示されるようにしたいのですが、関数の定義がわからないので教えてもらえないでしょうか。 フォームのデザインビューからプロパティ→年齢のテキストボックスを指定し、テキストボックス年齢のプロパティが開かれます。コントロールソースの項目からビルドボタンをクリックすると、式ビルダが開かれます。生年月日の表示方式は 生年月日 1999/09/09 といった表示方法をとっています。Excelだと、datedif関数で、 datedif("生年月日","2002/10/1","y")で年齢を算出できたので、もしかしたらAccessでも定義できるんではないかと思いまして質問いたしました。

  • Accessで月ごとのレポートを出したい

    Access2003で以下のような販売管理のデータベースを作成しているのですがクエリとレポートが思うように動いてくれずに困っております。 売上の管理のために顧客情報をメインフォームに明細をサブフォームで作成、明細テーブルからクエリで該当月を抜きだして請求書の印刷に使いたいと思っています。 レポートはフォームと同じようにメインレポートに顧客情報を表示してサブレポートとしてその月に販売した商品を一覧させたものを考えています。 サブレポートには明細のクエリを指定しています。そこでクエリの抽出条件に[月]としてキーボードから数字を入れるようにしたのですがそうするとレポートの印刷時にも顧客の数だけ月の入力を促す画面が出てきます。イメージとして「何月分の請求書を出しますか」みたいな画面(フォーム?)に数字を入力するとクエリの抽出条件が書き換わってくれるようにできないかと考えております。 うまく説明できていないと思いますが対処法をご存知の方おられましたらご教示お願いします。 他に情報が必要であれば言ってください。よろしくお願いします

  • アクセスでウェブ上のデータを半自動的に取り込みたいのですが

     今まで、気象データの集計をするのに、特定のウェブ上で参照したい年月日を入力して、その日の時毎データの頁を開き、データ表をマウスで範囲を指定してコピーし、エクセルに貼り付けて、そのデータを用いて集計を行っておりました。  しかし、上記の方法ですといちいち年月日の指定→画面の表示後必要箇所をコピー→エクセルに戻って貼り付け→ウェブに行って次の日の指定→と繰り返し作業が面倒です。  そこで、アクセスのフォームで取り込みたい年月日の範囲を指定することで、参照元のウェブから、特定範囲のデータを次々にコピーして、テーブルに各データを格納できるマクロを作成できないかと考えました。 所有バージョンはアクセス2002です。  今まではエクセルをよく使っており、簡易的なデータベースとしてもエクセルで済ませていましたが、データが蓄積すると処理に時間がかかるようになりましたので、アクセスを使った方がいいかなと考えます。  クエリーをとりあえず構成できるようになったのは2日前からです。モジュールは全く作ったことがありません。  よろしくご教示下さいますよう、お願い申し上げます。

  • Accessのメニュー画面

    windows XP・Access2330でデータベースを作成し、メニュー画面にフォームを開くボタンをコントロールウィザードを使用してコマンドボタンで作ったのですが、開こうとすると「イベントプロパティに指定した式 クリック時でエラーが発生しました:不正な文字です。」*マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。*関数、イベント、マクロの評価でエラーが発生しました。というエラーがでて開けません。フォーム自体は開いてデータも入力する事が出来、データベースとしてはちゃんと動いてくれているのですが・・・何が原因でどう対処したらいいのか教えていただけますか?

  • 1月に入ってからのインフルエンザ予防接種

    11月末で1歳になった息子がいます。 先日麻疹の予防接種を受けたのですが、昨日友人に1歳になったら優先的にインフルエンザ予防接種を受けさせないとダメじゃない!!!と言われました。でも麻疹を接種した後なので4週間は他の注射をうけられません。すごく不安になってきたのですが、1月に入ってからでもインフルエンザ予防接種は効果・ワクチンはあるのでしょうか?やはり受けるべきですか?ちなみに私は受けています。宜しくお願いします。

  • Accessフォームがメインメニューで隠れてしまう

    Accessで作成した社員情報データベースを一般の人は参照のみとし、 数人の有資格者だけデータ編集できるよう、メインメニューの中のボタンで IDとパスワード入力フォームを開き、合致した場合、編集対象フォーム、又 は別フォームメニューが開くようにしたのですが、一つ問題が。 IDとパス入力で対象フォームが無事開くのですが、画面のその対象フォーム の上というか前面にメインメニューが表示され、対象フォームがメインメニュー の背面に表示されてしまうのです。 原因と対処方が分からず、困り果てました。どうか解決策がありましたら ご教授頂けますと幸いです。 使用accessは2002です。よろしくお願い致します。

  • 【ACCESS】リストボックスに抽出してからテキストボックスに代入するには?

    ACCESS2003、初心者です。 医療事務のデータベースを作っています。 予約フォーム(frm予防接種予約)を作っていますが、次の(1),(2)の作業がうまくできなくて困っています。 (1)リストボックスへの抽出(検索ボタンを押すまではリストボックスの中は空の状態) frm予防接種予約のフォームで非連結テキストボックスに生年月日を入力して、検索ボタンを押す ↓ tbl患者個人票テーブルの生年月日と一致するレコード(氏名や住所)をリストボックスに表示させたい。 (2)表示されたリストボックスの中のレコードをクリックすると、そのレコードが氏名や住所に代入される。 一連の作業をfrm予防接種予約フォーム上で行いたいのですが、どのようにしたら良いのでしょうか?

  • Access VBA

    Access2003を使用しています。 Accessで管理者用のメインフォームと、一般ユーザー用のメインフォームを作成しました。 管理者と一般ユーザーが共用で使用するフォームがあるのですが、 それらのフォームからメイン画面に戻るときに、管理者であれば管理者用のフォームに、 一般のユーザーであれば一般ユーザー用のフォームを開くようにしたいと考えています。 そこでログインした際に、管理者であれば"1"、一般ユーザーであれば"2"をデータベースに記録して、 それを元にどちらを開くか判断するVBAを作成しようと思ったのですが、 具体的にどのようにしたら良いのかわからずに困っています。 ご回答をお願いします。

  • Access 日付での抽出

    初めまして、Access初心者です。 ネットで探しましたが、見つからなかったので、教えて下さい。 Access2010を使用しております。 テーブルの受付日(年月日)の項目で、抽出したいと考えております。 抽出方法は、検索フォームにあるテキストに「年月」を入力して、ボタンを押すと、 帳票フォームで表記されるようにしたいと思っております。 また、IDをクリックすると単票フォームで表記されて編集できるようにしたいと 思っております。 なるべくVBAは使わないで、できればと思っておりますが、 ご教授いただけないでしょうか。 よろしくお願いします。