重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (6件)

>月の家賃金額を入力するだけで自動で月の日数で按分して日々の家賃として入力させたい


フォームでという事なのでしょうか?
日付・家賃・按分家賃というテキストボックスがあるとして
家賃のテキストボックスのプロパティで更新後処理のイベントに

Me![按分家賃]=[家賃]/DateDiff("d",[日付],DateAdd("m",1,[日付]))

と記述します。
日付に月初の日付(2006/05/01のように)を入力し家賃に家賃金額を入力すれば按分家賃に金額を代入することが出来ます。
按分家賃の書式を通貨にしておけば自動で小数点以下は丸められて表示されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/26 15:14

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にはないので...
    • good
    • 0

s_husky です。



すみません。単に月末で割ればいいだけですね!

? 28000 / Format(Getdate("2006/02/01", 0, 99) , "dd")
1000

実質は、No3さんの回答と同じ処理をしています。
    • good
    • 0

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

    • good
    • 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
    • good
    • 0

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

この回答への補足

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

補足日時:2006/05/22 14:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!