0

研究患者を追跡するために、MS Access 2007 (病院が持っているもの...) での 2 週間の経験を使用して、DB をゼロから作成しています。基本的な情報の流れは、開始画面から、新しい患者を入力するか、古い患者を見つけることができるようになります (それぞれボタンから) - それらのパーツを取得します... (患者の人口統計フォームに移動します)

患者を見つけると、コンボボックスから以前の訪問を選択するか (その部分を取得)、新しい訪問を作成することができます (コンボボックスの追加フォームをポップアップ表示するボタンから) - その部分を取得します... (彼らは訪問フォームに行きます)

これが私の問題です。Visit Form で、Lab エントリを生成できるようにする必要があります (各 Lab エントリには、データを格納する複数のテーブルがあります)。フォーム (患者情報領域と、データシート ビューに異なるサブフォームを含む 12 個のタブ (1 つを除く)) を作成し、テーブルに入力した現在の「偽の」結果を取得して、タブに表示することができます。私の問題は、タブのいずれかに新しいラボの日付を入力すると (新しい一意の LabID が生成されます)、他の 11 個のタブ (すべてその一意の LabID に関連付けられている) にその日付が入力されるようにすることです。各ベーステーブルに記録します。訪問にラボが関連付けられていない場合、サブフォームは空白のデータシートで、新しい labID を入力できます。それ以外の場合は、すでに訪問中の場合は、
そうそう....また、結果が利用可能になったときに、それらの他のラボ記録に戻って編集/追加できる必要があります(病理学は他のものよりもはるかに時間がかかります-など)。ただし、LabID と関連する日付が 12 個のタブすべての各フォームに入力されている場合は、その情報が利用可能になったときにその情報を待つ空白のスペースが必要です。そのため、それほど問題ではないかもしれません。

基本的に、一意の患者は複数の一意の訪問を生成します --> 各訪問は、1 つ以上の一意の LabID を生成し、多数のラボ データ ポイントに関連付けることができます (すべてそのラボ ID に対して一意)。まだ混乱していますか?私の頭の中でそれが正しければ、それは1対多対多対1の関係ですか?

これが私のリレーションテーブルの一部です:

訪問フォームは次のとおりです。

訪問フォームのタブにあるサブフォームごとに、'Link master Fields' を VisitID に設定し、'Link Child Fields' を Lab ID に設定しました。驚くほど少量の VBA コーディングでこれらすべてを行うことができましたが、患者の人口統計ページのコンボ ボックスから取得するコーディングは次のとおりです。

Private Sub VisitCBO_Change()
    Dim ptWHERE As String
    ptWHERE = "[VisitID] = " & Me.VisitCBO.Value
    DoCmd.OpenForm "NewVisitsF", acNormal, , ptWHERE, acFormEdit
    VisitCBO = Null
End Sub

現在のところ、私のビルダーには訪問ページ用のコードはありません。サブフォームは、lab グループ テーブルと labID テーブルから取得したクエリに基づいています。

私は 1 週間に 1 回、答えを求めて Web と Access 2007 聖書を探し回っていますが、頭がいっぱいで立ち往生しているときは認めます... スペシャリスト、助けてください! - 必要に応じて、DB へのリンクを提供できます。

4

3 に答える 3

0

最終的に、すべてのデータ サブテーブルを、すべてのラボ変数を含む 1 つの巨大なテーブルに戻してから、変数をタブ付きのサブフォームに分割しました。VisitT と LabsT の間の親子関係は、VisitID/Visit_ID になりました。

そのデータをそのように概念化する方が簡単なので、元の質問のようにデータを異なるテーブルに分割してこれを行う方法を知りたいです。誰かが何かアイデアを持っているなら、私に知らせてください!

作業フォームとプロセスにたどり着くのを手伝ってくれた geeFlo に感謝します!

于 2016-09-28T14:43:25.890 に答える
0

だから私は物事を完全に変えてしまいました.... LabIDテーブルを完全に削除し、ラボグループをそれぞれ独自のlabgroupID自動番号(CBCID、Chem10IDなど)を持つ別々のテーブルに分割しました。私はそれが好きではありませんが、データは適切に記録されています : 検査室は、日付ごとの訪問と、患者への訪問を通じて関連付けられています。時間をかけてラボを追跡したい場合は、患者別のレポートで行い、日付別にグループ化します. いつか、各 labsubgroup が属する LabID を 1 つ持つ方法を理解できるようになるかもしれません。

于 2016-10-06T13:15:49.410 に答える