2014-09-29 91 views
0

我正在編輯數據庫模板,以便我可以跟蹤同一人在不同年齡的患者測試中的差異。跨表格MS訪問年齡計算

我改造了「學生數據庫」模板以利用已創建的表單和宏。

我有一個患者表,用於存儲在初次攝入時收集的所有數據:姓名,出生日期(DOB)等,以及第二個表格,可以跟蹤各次訪問的測試分數,包括:姓名,訪問日期)和分數信息。這些是成對的,所以我可以從一名患者獲得信息,並在不同的訪問中查看他們的分數。

我現在需要做的是創建一個查詢,我可以在他們參加測試時計算他們的年齡。

要做到這一點,我已經使用表達式生成器,進入Calculated:([Visit Date]-[DOB])/365

這適用於計算只有當我重新輸入新列的患者就診表中的DOB

我的年齡我嘗試過使用DateDiff並使用[Patient]![DOB]從其他表中調用數據,但我得到相同的錯誤。

(Calculated age: ([Patient Visit]![Visit Date]-[Patients]![DOB])/365) Calculated age: (DateDiff("yyyy",[Patients]![DOB],[Patient Visit]![Visit Date]))

兩個吐出錯誤:Enter Parameter Value 'Patients!DOB' 如果我輸入一個日期,計算得到,我輸入了相同的DOB所有數據點和患者。

我該如何讓Access知道我需要它來計算同一患者的DOB訪問日期?

?我是否需要爲患者ID創建查找表以匹配DOB,然後使用該字段進行計算?

如果我可以修復的表達出現問題,那將是理想的。如果沒有,在訪問時計算年齡的最佳方法是什麼,而不必手動輸入患者DOB不止一次(初次攝取一次,每次再次訪問時)。

預先感謝您。

回答

0

我找到了解決方案!

我正在使用'查詢'錯誤。而不是試圖強制它識別另一個表,我需要在創建查詢時將表添加到查詢中。 即: 1_選擇了 '查詢設計' 2_選擇的與所需要的信息(通過表單中輸入的)表 3_用於`

Patient Name: IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[First Name]),IIf(IsNull([First Name]),[Last Name],[First Name] & " " & [Last Name])) 

` 對於第一場和

Patient Visit.*

爲第二個字段。通過添加「Patient Visit。*」,查詢會將表中的所有字段添加到查詢中。

我從患者表中選擇DOB的第三個字段(它可用於選擇,因爲我最初在佈局中選擇了兩個表)。

我現在可以使用原來的

Calculated:([Visit Date]-[DOB])/365

年齡計算W/O任何錯誤。我在properties> format> fixed下完成了格式化。

Wooo!