- ベストアンサー
月の日数で按分
access2000 お店の日々の収支を出そうと思っています。 売上や仕入は日々の金額が分かるのですが、家賃は月極めなので月の日数で按分して日々の金額として入力しています。 これをどうにかして月の家賃金額を入力するだけで、自動で月の日数で按分して日々の家賃として入力させたいのですが、その方法が分かりません。 どなたかご存知の方がいらっしゃいましたら教えてください。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>月の家賃金額を入力するだけで自動で月の日数で按分して日々の家賃として入力させたい フォームでという事なのでしょうか? 日付・家賃・按分家賃というテキストボックスがあるとして 家賃のテキストボックスのプロパティで更新後処理のイベントに Me![按分家賃]=[家賃]/DateDiff("d",[日付],DateAdd("m",1,[日付])) と記述します。 日付に月初の日付(2006/05/01のように)を入力し家賃に家賃金額を入力すれば按分家賃に金額を代入することが出来ます。 按分家賃の書式を通貨にしておけば自動で小数点以下は丸められて表示されます。
その他の回答 (5)
No3の方の補足です。「釈迦に説法」だったらゴメンナサイ。 DateSerial関数はパラメータに年月日を指定して日付データ(シリアル値=1900/1/1からの累計日数)を出力する関数です。 DateSerial(2006,5,1)なら2006/5/1(シリアル値38838=1900/1/1からの累計日数)が出力されます。 そこでDateSerial(2006,5,0)とすると2006/4/30(5月1日の前日=前月の末日)が出力されます。 ちなみにDateSerial(2006,5,-1)とすると2006/4/29が出力されます。 従って、ある月の末日の日にちを得たければ、 Day(DateSerial(Year(日付),Month(日付)+1,0)) で取得することができる訳です。 ExcelだとEOMONTHという月末日を取得する関数があるのですがAccessにはないので...
s_husky です。 すみません。単に月末で割ればいいだけですね! ? 28000 / Format(Getdate("2006/02/01", 0, 99) , "dd") 1000 実質は、No3さんの回答と同じ処理をしています。
- CHRONOS_0
- ベストアンサー率54% (457/838)
1日分家賃=1月分家賃/Day(DateSerial(Year([日付]),Month([日付])+1,0))
? 28000 / (Getdate("2006/02/01", 0, 99) - Getdate("2006/02/01", 0, 1) + 1) 1000 この歳、端数処理の問題は無視しております。 Public Function GetDate(ByVal Hiduke As Date, _ ByVal Move As Integer, _ ByVal dd As Integer) As Date GetDate = DateSerial(DatePart("yyyy", Hiduke), _ DatePart("m", Hiduke) + Move - (dd = 99), _ dd * Abs(dd <> 99)) End Function
閏年/非閏年の2月(29日/28日)も、厳密に計算したいのでしょうか?
補足
出来れば厳密に計算したいのですが、複雑になるようであればあきらめます。
お礼
連絡が遅れてすみません。 教えていただいたようにやってみたところうまくいきました。 大変ありがとうございました。