• 締切済み

ACCESSの時刻の引き算

テーブルに「開始時刻」と「終了時刻」のフィールドがあり、それぞれに「8:15」,「17:00」のように日付/時刻型のデータが入っています。 「終了時刻」から「開始時刻」を引いて、同じテーブルの「時間」フィールドに「4.5hr」、「2.0hr」というような「数値型」のデータとして自動で計算したものが入るようにしたいです。 可能ですか? ACCESSは現在勉強中です。いろいろ追加で質問されていただく可能性があります。よろしくお願いします。

みんなの回答

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

>データ入力時に何時間やったのかを表示したかったです テーブルに入力時では」だめですがフォームを作りフォームに時間の差を表示するフィールドを作りそこに先の記述をいれればフォームで入力時に表示できます。 テーブルに保存時したければフォーム上に入力したレコードを保存する際に演算したフィールドの値をテーブルに一緒に書き込みに行けば出来ます。 Me![時間]=Me![時間差] と保存ボタンのプロシジャの途中に書き加えればできます。 フォームの差を表示するフィールドとテーブルの保存するフィールド名が同じだとエラーになるので違う名前を使ってください。

kairinkou
質問者

お礼

親切な回答ありがとうございます。 二つわかりませんので、教えてください。 1.演算したフィールドの値をテーブルに一緒に書き込みに →どのような条件(演算式?)を使えばいいのでしょうか? 2.Me![時間]=Me![時間差] と保存ボタンのプロシジャの途中に書き加え →どこに、なにを書くのか教えて下さい。 よろしくお願いします。もっと勉強すれば私の希望するものが出来そうです。がんばります。

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

「終了時刻」-「開始時刻」では演算できません。 クエリに下記の記述で計算できます。 DateDiff("n",[開始時刻],[終了時刻])/60 終了時刻と開始時刻の差を分で求め60で割れば4.5とか2.0で算出できます。 #1の方のいうようにテーブルに演算値は保存しないでクエリなどで表示するようにしますがテーブルに保存したいのであれば時刻の差を保存するフィールドの更新クエリを作りレコードの更新に上記の記述をすれば出来ます。 テーブルやフォーム等での表示ですがデータ型は倍精度浮動小数点型にして書式に0"hr"として小数点以下の桁数を1にすれば4.5hrや2.0hrと表示されます。

kairinkou
質問者

お礼

やはりクエリを使っての入力になってしまいますか。データ入力時に何時間やったのかを表示したかったです。 回答ありがとうございました。

回答No.1

テーブルに計算した値を入力・保存していくのではなくて、クエリを使って計算してやる方が簡単だと思います。 選択クエリで式ビルダを使って、 「終了時刻」-「開始時刻」を入力、クエリを実行すれば自働で計算されます。 テーブルにはあくまでデータを保存していくのがいいように思います。

kairinkou
質問者

お礼

回答ありがとうございます。やはりクエリでの計算になりますか・・・。 入力時に何時間やったのか?が、わかると確認にもなりよかったのですが・・・。

関連するQ&A