0

我正在使用我在 MS Access 2007(医院拥有的……)方面的 2 周经验从头开始创建数据库,以跟踪研究患者。信息的基本流程是这样的,从一个开始屏幕,这个人可以输入一个新病人或找到一个老病人(每个都通过一个按钮) - 得到这些部分......(他们去一个病人人口统计表格)

找到患者后,他们可以从组合框中选择以前的就诊(获取该部分)或创建新就诊(通过一个按钮,然后弹出组合框的附加表单)- 获取该部分... (他们去访问表格)

这就是我的问题所在。在访问表单上,我们需要能够生成实验室条目(每个实验室条目都有多个表来存储数据)。我已经创建了表单(患者信息区域和 12 个选项卡,每个选项卡在数据表视图中都有不同的子表单(一个除外)),我可以获得我在表中输入的当前“假”结果以显示在选项卡中。我的问题在于获取它,以便当我们在任何一个选项卡中输入新的实验室日期(确实会生成一个新的唯一 LabID)时,让它在其他 11 个选项卡(都与该唯一 LabID 相关联)中填充该日期和记录在每个基表中。如果访问没有与之关联的实验室,我的子表单应该只是空白数据表,可以输入新的 l​​abID。否则,如果我们已经在访问,
哦,是的....我们还必须能够回到那些其他实验室记录并在结果可用时对其进行编辑/添加(病理学比其他需要更长的时间 - 等等)。但是,如果 LabID 和相关日期填充在所有 12 个选项卡中的每个表单中,则应该有一个空白区域等待该信息可用时。所以这可能不是什么大问题。

本质上,一个独特的患者将产生多次独特的就诊——>每次就诊可以产生 1 个或多个独特的 LabID,然后与许多实验室数据点相关联(对于该实验室 ID 来说都是唯一的)。迷茫了吗?如果我的想法是正确的,那是一对多对多对一的关系吗?

这是我的关系表的一部分:

这是访问表格:

对于访问表单选项卡中的每个子表单,我将“链接主字段”设置为 VisitID,并将“链接子字段”设置为 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

截至目前,我的构建器中没有访问页面的代码。子表单基于从实验室组表和 labID 表中提取的查询。

一周以来,我一直在网上和 Access 2007 圣经中寻找答案,但我可以承认,当我不知所措并陷入困境时……专家,请帮忙!- 如果需要,我可以提供指向数据库的链接。

4

3 回答 3

0

所以我最终彻底改变了周围的事情......我完全删除了 LabID 表,并将实验室组分成单独的表,每个表都有自己的 labgroupID 自动编号(CBCID、Chem10ID 等)。我不喜欢它,但它正在正确记录数据:实验室与按日期访问和通过对患者的访问相关联。如果我想随着时间的推移跟踪实验室,我会在患者报告中这样做,然后按日期分组。也许有一天我能够弄清楚如何让每个实验室子组都属于一个 LabID,以便它们都同时填充……可能涉及一些繁重的 VBA 编码。

于 2016-10-06T13:15:49.410 回答
0

我最终将所有数据子表重新粘贴到一个包含所有实验室变量的大表中,然后将变量划分为选项卡式子表单。现在,VisitT 和 LabsT 之间的父/子关系是 VisitID/Visit_ID。

我仍然想知道如何将数据拆分为不同的表,就像我原来的问题一样,因为这样更容易概念化这些数据。所以如果有人有任何想法,请告诉我!

感谢 geeFlo 来回帮助我获得工作表格和流程!

于 2016-09-28T14:43:25.890 回答
0

VisitsT 是您的父表单吗?您的每个子表单都以某种方式通过 LabsT 表单。您的父母/孩子应该将您的主要 VisitsT 数据链接到您的每个子表单,但现在看起来您正在通过 LabsT 并链接错误的字段。从您的加入关系来看,它看起来像 LabID = LabID(父/子),但是您没有链接它们。您的每个子表都应该有一个唯一的键(可能是 LABID 和 VISITS),看起来您尝试使用中间的 LabsT 表单来执行此操作。此信息应在每个子表单上重复。然后您的父母/孩子只能使用 VisitID。

于 2016-09-27T14:56:59.553 回答