初心者なのですが どうぞ宜しくお願い致します。
accessに挑戦しているのですが判らないことが沢山あるので
お手すきの方 助言お願いいたします。
まず、やりたい事をのべます。
歯科医院での使用目的です。
1.カルテ番号を入力すると患者情報が出てきて
2.各歯科衛生士が毎日の作業(処置内容)を入力していきます。
(内容は衛生士ID、処置ID、処置日)
3.患者は月に2回来る事もあるのでデータの上書きではなく蓄積させ
4.毎月締め日に各衛生士ごとの処置一覧をレポートで出したい。
それにあたり今現在進めている作業は以下です。
[テーブル]
「患者情報」
カルテ番号、患者氏名、フリガナ、生年月日、性別
データはすべてインポート済みです。レコードは5000程です。
「衛生士マスタ」
衛生士ID、衛生士名前
3人いるので 3レコード作ってあります。
「処置内容マスタ」
処置ID、処置内容
3種あるので 3レコード作ってあります。
「処置履歴」
処置履歴ID(オートナンバー)、カルテ番号、衛生士ID、処置ID、処置日
データを蓄積させる為のテーブルと思って作ったのですが
そもそもこれはいらない??
上記4テーブルをリレーションさせ
ウィザードで「処置履歴クエリ」を作成。
カルテ番号の抽出条件に
=[カルテ番号を入力してください]と入力、保存。
「処置履歴クエリ」でカルテ番号を入力するも
データ出てこないので ためしに「処置履歴」テーブルに
カルテ番号100でデータを入れてみました。
すると カルテ番号100を入れると出てきました。
って事は やはり「処置履歴」テーブルにはデータが入っていないといけないと言う事ですよね。
だとすると 私のテーブルの作り方が間違っていると…。
今 この段階で足踏みしています。
どなたか 超初心者の私に 噛み砕いて助言いただけたら幸いです。
どうぞ 宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
#1、#3です。
テーブルをドラッグ・ドロップで子フォームを作成したことはなかったので、試してみました。いくつか気付いた点1.子フォームのレコードソース
「処置履歴」テーブルになっていますが、クエリにして並べ替え順を指定した方がよいでしょう。指定がないとDBがどのような順でデータを返すかは不定です
2.子フォームの表示形式
リストタイプ(データシートや帳票)でも良いでしょうが、単票にしてかつ日付降順にしておけば、最終レコードが表示され使いやすいかもしれません
この問題に関し、さらなる疑問点などが生じた場合は、補足などで質問するより、新しい質問で投稿することをお奨めします。「補足」ではごく少数の人しか読まないし、従って回答も偏ったものになってしまいます。
何度も丁寧に回答頂き ありがとうございました。
子フォームもご指摘の通り修復したお陰で無事作成できました。
今回作ったのをきっかけにさらに勉強していきたいと思います。
本当に ありがとうございました。
No.3
- 回答日時:
#1です。
親子フォームに関し、ちょっとサンプルを作ってみました。技術的には簡単ですが、作る課程を初心者向けに説明するのは、かなり長文になり大変です。親子フォームを解説する入門書沢山あるはずなので、そちらで勉強して、判らない部分を質問していただけないでしょうか?取り敢えず無料の解説では
http://www.btvm.ne.jp/~toyumi/foumu.html
この回答への補足
再度の回答 ありがとうございます。
親子フォーム、たどり着けました。
「処置履歴クエリ」を
SELECT 患者情報.患者番号, 患者情報.患者氏名, 患者情報.フリガナ, 患者情報.生年月日, 患者情報.性別
FROM 患者情報
WHERE (((患者情報.患者番号)=[カルテ番号を入力して下さい]));
と、変更しウィザードを使って
「患者情報フォーム」を作成しました。
ここに「処置履歴」テーブルをドラッグし
「処置履歴のサブフォーム」が出来ました。
こんな感じでいいでしょうか?
サブフォーム部分はリスト状でOKでしょうか?
No.2
- 回答日時:
たぶん、リレーションの張り方の問題でしょう。
クエリデザインビューで、リレーションの線が矢印なしになっていませんか?
この場合は、結びついている両方のテーブルにレコードが無いと表示されません(というか、両方に無いと表示されない、そういう種類のリレーションシップ)。
この線にカーソルをあてて、右クリックしてください。
手元にアクセスがないのでうろ覚えですが、「リレーションシップの種類」というような項目があります。
ここで「テーブル○○のレコード全部と、テーブル××の関連付けられたレコードを表示」というような(正確にはおぼえてません)種類を選びます。
分かりにくい文章なのですが、落ち着いて読めば意味がわかるはずです。
なお、こうして作ったクエリは更新できないクエリになるかもしれません。その場合は、入力のためには、No1方が提案されているように、親子フォームを作るのが便利です。
丁寧な回答ありがとうございます。
また お礼が遅くなってすみません。
リレーションですが 仰る通り矢印無しになっていました。
ご指摘頂きました親子フォームに挑戦したく思います。
初心者の私にも判るように 噛み砕いて説明していただき
ありがとうございました!!
No.1
- 回答日時:
テーブルの設計は、ご呈示のもので、基本的に良いと考えます。
で、フツーは患者氏名をアイウエオ順に一覧し、その一人を選べば、処置履歴が見えるように作ったりします。しかし作成しようとしているシステムでは、カルテ番号が判っているので、一覧など必要ないということでしょうか?
それならば親子フォームを作り、親フォームにカルテ番号を入力すると、子フォームにその患者の履歴一覧が表示され、これに追加もできます。そのようなフォームの作り方を知りたいのでしょうか?
後「処置履歴クエリ」の実体をSQL文でご呈示下さい。SQL文の表示方法が判らなければ、添付画像をご参考に。
この回答への補足
早速の丁寧な回答ありがとうございます。
また、お返事遅くなって 申し訳ありません。
ご指摘の通り カルテ番号は判っているので一覧は必要ありません。
親子フォーム! 初耳です!!
そして ご提示していただいた方法、すごく魅力的です!!!
是非 知りたいです。お願いいたします。
「処置履歴クエリ」のSQLです。宜しくお願い致します。
SELECT 処置履歴.処置履歴ID, 処置履歴.患者番号, 患者情報.患者氏名, 患者情報.フリガナ, 患者情報.生年月日, 患者情報.性別, 衛生士マスタ.衛生士ID, 衛生士マスタ.衛生士名前, 処置内容マスタ.処置ID, 処置内容マスタ.処置内容, 処置履歴.処置日
FROM 処置内容マスタ INNER JOIN (患者情報 INNER JOIN (衛生士マスタ INNER JOIN 処置履歴 ON 衛生士マスタ.衛生士ID = 処置履歴.衛生士ID) ON 患者情報.患者番号 = 処置履歴.患者番号) ON 処置内容マスタ.処置ID = 処置履歴.処置ID
WHERE (((処置履歴.患者番号)=[カルテ番号を入力してください]));
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) ACSESS初心者です マンション管理をACCESSで出来ないかとチャレンジしています。 リレーショ 3 2022/10/08 11:45
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
Access VBA Me.Requery レコー...
-
ManagementStudioからのデータ削除
-
Access 1レコードずつcsvで出力...
-
SQLServerで同一条件レコードの...
-
データの二重表示の原因
-
2つの項目が重複するレコード...
-
Accessにインポートしたら並び...
-
数百万件レコードのdelete
-
Access2000でのExcel行の削除法
-
Access 削除クエリが重い
-
Accessでの禁止文字チェック
-
Access カレントレコードがあり...
-
テーブルのレコード削除ができ...
-
Accessの重複クエリで最小以外...
-
SQLデータ修正時に『このレコー...
-
Accessでの排他制御
-
ACCESSファイルを開こうとする...
-
Accessでの自己結合?
-
Access2000のODBCで困っています
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
Access VBA Me.Requery レコー...
-
ACCESSのBookmarkプロパティの...
-
Access 1レコードずつcsvで出力...
-
Access 削除クエリが重い
-
ManagementStudioからのデータ削除
-
SQLServerで同一条件レコードの...
-
非連結サブフォームのレコード...
-
Accessでレコードが更新された...
-
Accessでの排他制御
-
(ACCESS)並び替えをしないで...
-
Accessで重複したデータを一件...
-
Accessでの禁止文字チェック
-
Access カレントレコードがあり...
-
ACCESSファイルを開こうとする...
-
ACCESS【更新クエリの中断がで...
おすすめ情報