2014-05-16 40 views
0

我在Access 2010中創建一個新表單。我需要創建一個字段,計算一個月至今的時間範圍,使用第一天的計算值那一年。該方案是用戶將輸入一個日期。然後,Access將根據用戶鍵入的日期計算YTD月份的值。問題在於用戶可能會輸入當前年份的日期或前一年的日期。所以,我不能簡單地編寫一個基準日期,比如1/1/2014,來執行計算。我需要Access根據輸入的日期生成一年中的第一天,然後執行計算。使用年度計算的第一天訪問datediff

實施例:用戶輸入「2013年4月10日」

訪問計算從「2013年1月1日」 YTD個月爲「2013年4月10日」。

預期結果:3.25個月

我想這能幫助計算收入,這將利用在多個年份的日期。

回答

0

我很快就創造了這個功能對你:

Public Function calcmonths(datecalc As Date) As Double 

    calcmonths = Round(DateDiff("d", DateSerial(Year(datecalc), 1, 1), datecalc) * 12/DateDiff("d", DateSerial(Year(datecalc), 1, 1), DateSerial(Year(datecalc) + 1, 1, 1)), 2) 
End Function 

您可以用您的表單的輸入使用。它使用DateSerial(Year(datecalc), 1, 1)計算輸入年份的第一天,然後計算天數差異。該結果乘以12(月)併除以該年內的天數(計算確保閏年爲366天)。最終結果四捨五入爲2個十進制數。

+0

這是運作良好。謝謝。 –