2017-02-28 64 views
-1

我需要一個顯示日期的靈活表格。我的意思是說,如果我在1976年6月15日提出,它就是這樣表示的。但是如果我把20放在同一個字段中,那麼20就會與今天的日期一起計算20年。需要日期計算MS Access

我設置在表中的日期/時間字段的格式:tbl_ageLimit至#,所以它顯示序列日期,而不是一個用戶可讀的日期。該表有一個字段:ageLimit。

我試圖建立一個查詢來識別,如果日期是不是在其當前狀態有關,然後將其轉化爲相關的東西,把它放在另一個表,將不斷更新。

現在,我只是試圖讓公式對識別和轉換日期的工作。這是在Excel工作出色的公式,但似乎並沒有在MS Access是工作:

IIF([ageLimit]<=100,Date()-365*[ageLimit],[ageLimit]) 

它承認如果字段中有一個數字,小於100,但它沒有這樣做的數學並在新表中顯示新記錄。下面是SQL:

SELECT tbl_ageLimit.ageLimit INTO tbl_allAges 
FROM tbl_ageLimit 
WHERE (((tbl_ageLimit.ageLimit)=IIf([ageLimit]<=100,Date()-365*[ageLimit],[ageLimit]))); 

有人可以指出我在做什麼錯嗎?謝謝。

按照要求,這裏有問題的快照:

tbl_ageLimit Time/Date Field formatted as serial datetbl_allAges showing four records instead of five. Where's the fifth record?

所創建沒有顯示第五記錄表。難住了。

+0

那如何公式在Excel工作出色? Excel不使用'IIF()'。 *但它沒有做數學* ...請向我們展示一些當前和期望結果的數據。 – Parfait

+0

也可以告訴我我的設計有缺陷。目的是因爲不同的州對某些物業的貸款有不同的法律。不幸的是,有些人說20歲,其他人有一個確定的日期,如1976年6月15日。其他人只有一年。 –

+0

Excel確實有一個IIf()公式,它只是IF(表達式,如果爲true,如果爲false)。 –

回答

1

考慮取消WHERE條款,你並不需要篩選記錄。既然你打算評估IIF()表達,地方SELECT子句中:

SELECT IIf([ageLimit]<=100, Date()-365*[ageLimit], [ageLimit]) As [age_Limit] 
INTO tbl_allAges 
FROM tbl_ageLimit 
+0

它給了我一個循環參考對話框。也許訪問限制? –

+0

重命名錶別名。請參閱[age_Limit]的更新。然後在新表格中重新命名。 – Parfait

+0

你是個美麗的人!謝謝! –