~工作簡化,不再是難事~

2016-09-08

提問單〔Access〕:將日期加上指定的年區間的應用(iif / isnull / DateSerial / DateAdd )


如果您有一份資料表中,有2個欄位如上
想要在查詢表或表單中,增加一個欄位,內容為[基準日期]+[年份],要如何處理?

在撰寫運算式時,要注意其中[基準日期]有可能是空值,運算式在若遇到沒有日期的情況,就不進行加總年份。

所以,我們依以下兩個階段將運算式完成
A. 判斷是否[基準日期]為空值
B. 非空值時,我們要將[基準日期]加上[年份]得到我們想要的日期

首先,我們如何判斷日期為空值呢?
通常我們判斷字串為空值都使用 空字串"",但日期的格式則為null,所以可以使用以下函數來確認

  • isnull([基準日期])

若為空值則回傳true,有值則回傳false

再來,如何將日期做加減呢?日期函數很多種,都可以達成加減的目的,可以例用以下2個函數來做


  • DateAdd(增加類別, 增加量, 日期)

例如:DateAdd("yyyy",[增加年份],[基準日期])
            DateAdd("yyyy", 2 , 2016-09-05) → 2018-09-05

ValueExplanation
yyyyYear
qQuarter
mMonth
yDay of the year
dDay
wWeekday
wwWeek
hHour
nMinute
sSecond
或是您可以自已計算年、月、日,再組合成日期格式
  • DateSerial(年, 月, 日)
例如:DateSerial(Year([基準日期])+[增加年份], Month([基準日期]), Day([基準日期]))
            DateSerial(Year(2016-09-05)+2, Month(2016-09-05), Day(2016-09-05))
            →DateSerial(2016+2, 9, 5)→2018-09-05

這些運算式寫好時…就來做判斷的組合了…又要用到經典函數了
  • iif(判斷式,成立,不成立)
在Excel中函數為if,Access多了個i喔~iif...千萬別寫錯囉~

我們來完成這個判斷吧!
=iif(isnull([基準日期]),"",DateAdd("yyyy",[增加年份],[基準日期]))

您,組對了嗎??

0 意見:

張貼留言

Popular Posts

Copyright © 2016 Scenic's BOX. 技術提供:Blogger.