我对Access非常陌生 - 我很喜欢为我参与的研究项目设计一个数据库。所以,请耐心等待,因为我几乎什么都不知道:)我遇到的问题因此:
我的数据库用于医学研究项目,并且非常依赖于时间和日期,我的意思是我需要捕获每个数据的日期和时间,以便最终得到一种事件的时间表。每个科目。
按原样,我对每个数据都有如下内容:(每个数据都在其自己的字段中)
ArrivalDate
ArrivalTime
HeartRateDate
HeartRateTime
HeartRateData
TemperatureDate
TemperatureTime
TemperatureData
BloodPressureDate
BloodPressureTime
BloodPressureData
我需要为每位患者收集大约200个类似的数据。为了避免不得不一遍又一遍地重新输入相同的数据,并且为了减少错误的可能性,我希望将给定患者记录中的所有日期字段默认为输入的第一个,在这种情况下"到达日期"。但是,我还需要每个日期字段都可以编辑而不会影响其他日期字段。这样做的原因是,如果患者的访问在几天内发生,我们可以准确地记录。
我尝试过使用默认值设置,并设置控制源以引用"到达日期"字段,但当然对一个字段的任何更改都会影响它们。我甚至不确定我想做什么是可能的,但我会感谢任何帮助和/或建议!
提前谢谢
答案 0 :(得分:1)
将所有这些数据放在大表的不同列中是行不通的。你不是每个病人只测量一次温度或血压等事情,对吗?
这是一种经典的一对多关系。
您应该有一个单独的column_list = [category=None, prodid_brand=None, prod_type=None, prod_application=None, prod_handletype=None, prod_series=None]
表,例如像这样:
Measurements
正如Barmar写的那样,没有理由为日期和时间设置单独的列。
在输入测量值的表单中,您可以使用+--------+-----------+---------------+------------------+-----------+
| MeasID | PatientID | MeasType | MeasDateTime | MeasValue |
+--------+-----------+---------------+------------------+-----------+
| 1 | 1 | Temperature | 2017-05-17 14:30 | 38.2 |
| 2 | 1 | BloodPressure | 2017-05-17 14:30 | 130/90 |
| 3 | 1 | Temperature | 2017-05-17 18:00 | 38.5 |
| 4 | 2 | Temperature | etc. | |
+--------+-----------+---------------+------------------+-----------+
事件使用BeforeInsert
功能将MeasDateTime
设置为当前时间。
因此用户无需手动输入,但如果测量时间与输入数据的时间不同,他们可以对其进行编辑。