填充多个标签的唯一实验室条目

时间:2016-09-26 22:06:00

标签: ms-access tabs ms-access-2007 subforms

我正在使用MS Access 2007的2周经验(医院有什么......)从头开始创建数据库,以便跟踪研究患者。信息的基本流程将是这样的:从开始屏幕,该人可以进入新患者或找到老患者(每个来自按钮) - 获得这些部分......(他们转到患者人口统计表格)< / p>

找到病人后,他们可以从组合框中选择之前的访问(获得该部分)或创建新访问(从按钮然后弹出组合框的添加表单) - 获得该部分......(他们去参观表格)

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

基本上,独特患者将产生多重独特访问 - &gt;每次访问都可以生成一个或多个Unique LabID,然后与许多实验室数据点相关联(所有实验室ID都是唯一的)。困惑了吗?如果我在脑子里把它弄好了,这是一对多对多的关系吗?

这是我关系表的一部分:

这是访问表格:

对于访问表单选项卡中的每个子表单,我将“链接主字段”设置为VisitID,并将“链接子字段”设置为实验室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圣经以寻找一周回答的答案,但我可以承认,当我在我的头脑中而且卡住了...专家,请帮忙! - 如果需要,我可以提供DB的链接。

3 个答案:

答案 0 :(得分:0)

VisitsT是您的父表单,每个子表单都以某种方式通过LabsT表单。您的父/子应该将您的主要VisitsT数据链接到您的每个子表单,但现在看起来您正在浏览LabsT并链接错误的字段。从您的加入关系看,它看起来像LabID = LabID(父/子),但是您没有链接它们。每个子表都应该有一个唯一的键(可能是LABID和VISITS),看起来你试图用中间的LabsT表单来做这个。应在每个子表单上重复此信息。那么您的父/子只能在VisitID上。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

所以我最终彻底改变了一切......我完全删除了LabID表并将实验室组分成了单独的表,每个表都有自己的labgroupID自动编号(CBCID,Chem10ID等)。我不喜欢它,但它正确记录数据:实验室与按日期访问和访问患者有关。如果我想跟随实验室,我会在患者的报告中按照日期进行分组。也许有一天我能够弄清楚如何拥有每个labsubgroup所属的一个LabID,以便它们可以同时填充...可能涉及一些繁重的VBA编码。