• ベストアンサー

月の日数で按分

access2000 お店の日々の収支を出そうと思っています。 売上や仕入は日々の金額が分かるのですが、家賃は月極めなので月の日数で按分して日々の金額として入力しています。 これをどうにかして月の家賃金額を入力するだけで、自動で月の日数で按分して日々の家賃として入力させたいのですが、その方法が分かりません。 どなたかご存知の方がいらっしゃいましたら教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.6

>月の家賃金額を入力するだけで自動で月の日数で按分して日々の家賃として入力させたい フォームでという事なのでしょうか? 日付・家賃・按分家賃というテキストボックスがあるとして 家賃のテキストボックスのプロパティで更新後処理のイベントに Me![按分家賃]=[家賃]/DateDiff("d",[日付],DateAdd("m",1,[日付])) と記述します。 日付に月初の日付(2006/05/01のように)を入力し家賃に家賃金額を入力すれば按分家賃に金額を代入することが出来ます。 按分家賃の書式を通貨にしておけば自動で小数点以下は丸められて表示されます。

shinp
質問者

お礼

連絡が遅れてすみません。 教えていただいたようにやってみたところうまくいきました。 大変ありがとうございました。

その他の回答 (5)

noname#79209
noname#79209
回答No.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にはないので...

noname#22222
noname#22222
回答No.4

s_husky です。 すみません。単に月末で割ればいいだけですね! ? 28000 / Format(Getdate("2006/02/01", 0, 99) , "dd") 1000 実質は、No3さんの回答と同じ処理をしています。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

1日分家賃=1月分家賃/Day(DateSerial(Year([日付]),Month([日付])+1,0))

noname#22222
noname#22222
回答No.2

? 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

noname#182251
noname#182251
回答No.1

閏年/非閏年の2月(29日/28日)も、厳密に計算したいのでしょうか?

shinp
質問者

補足

出来れば厳密に計算したいのですが、複雑になるようであればあきらめます。

関連するQ&A