• 締切済み

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

  • 日付/時刻型フィールドで時刻データのみを扱うには?

    アクセスのテーブル管理について質問させてください。 現在アクセス上で処理しているテーブルの一つ、日付/時刻型フィールドには時刻データが入っています。 形式:定型入力 時刻(L) 13:12:00 このテーブルをCSVデータとしてエクスポートしたところ、1899/12/30という日付データが時刻データの前に追加されてしまいました。 定型入力をしていたので日付データは扱われないものだと思っていたのですが、見えない部分で日付データも扱われていたということですね。 これを日付/時刻型フィールドのまま時刻データのみを扱う様にするにはどのようにしたらよいのでしょうか? 具体的には、アクセス上で作成した時刻データを含む計測値を日付毎のCSVファイルとしてエクスポートし、後に必要になった場合指定された日付のファイルをインポートします。 よって日付データは必要ないので時刻データのみで管理をしたい、ということです。 レコード数が多いため、ファイル容量を減らすためデータはなるべく少なくしたいのが実情です。 それでも必要ない日付データを加えておいた方がよいのでしょうか? よろしくお願いいたします。

  • access2000にてクエリで日付計算

    アクセスのテーブルにて 開始時間 00:00 と終了時間 99:99 を持っています クエリで 終了時間-開始時間を計算し 実働時間 00:00 を出したいのですが 普通に計算すると0.023088・・・とかの数字になります 実働時間を計算する方法はありますでしょうか? 開始時間 終了時間ともデータ型は 日付/時刻型になってます

  • Accessの日付・時刻って。

    Access初心者です。 WindowsMe上にて、Access2000を使用しています。 1月~12月までの、フィールドのあるテーブルと、 1日~31日までの、フィールドのあるテーブルを作って、 リレーションシップで、該当する日付をとりだそうと、発想したのですが、 一番最初の、1月~12月までのフィールドのある、 テーブルを作成する時点でつまづいています。 データ型の、日付・時刻には、「月」だけ、「日」だけを、抽出するリストがないですよね? どのように設定したらいいのか、教えてください。 仕事などで使うのではなく、 ただ単に、Accessの操作理解のために、 作ろうとした、自分の練習用の問題です。 できないとは思えないんですが。 また、Accessの勉強をするのに、おすすめの本や、サイトがあったら、お願いします。

  • Access テキスト型を日付/時刻型へ変更

    いつもお世話になっております。 Accessについてお願い致します。 テーブル「メインデータ」に日付と時刻が一緒になっているデータがあります。例:2004/01/01/ 10:00 現在、 フィールド名:受付時間 データ型:テキスト型 フィールドサイズ:12 定数入力:0000/00/00\ 00:00;0;_ と設定してあり、問題はこのデータをテキスト型から日付/時刻型「「yyyy/mm/dd @@:@@」)へ変更したいのですが、 テキスト型→日付/時刻型へ変更すればデータが消えてしまいます。 そこで、クエリでFormatを使ったのですがエラーが出てしまいます。 何か良い案はございませんでしょうか? 宜しくお願い致します。

  • アクセス データエクスポートの形式について(時刻の削除)

    アクセスのテーブルに型が「日付/時刻型」で、デザインの書式が「日付(S)」となっているフィールドがあります。従って見た目上では、2008/04/1のような形式をしていますが、csv形式にてエクスポートした際に「2008/4/1 0:00:00」となってしまい、時刻が追加されてしまいます。これの時刻を省いた形式で直接アクセスからエクスポートしたいのですが、アクセス上で何を修正すればよいのでしょうか。 すみませんが、どなたか教えてください。

  • アクセスVBAでの時刻の計算

    開始時刻と終了時刻をテーブルに保存するために、フォームの入力欄に、操作者は3つ入力します。 A開始時刻の時 B開始時刻の分 C完了までの時間(分間) 開始時刻は、A時B分でそのままテーブルに保存できます。 終了時刻は、(A時B分+C分の計算結果の時部)時(A時B分+C分の計算結果の分部)分 としてテーブルに保存できますが、どのように表記したらよいのでしょうか? よろしくお願いいたします。 ( Windows XP : Access 2002 )

  • Access 同一フィード内のデータの引き算

    Access2003ユーザです。 使用距離数を集計していくテーブルを作成したいと思います。 例として、IDと距離というフィールドを基にテーブルを作成し、以下の様にデータを入力します。 ID  /  距離 1  100 2  200 3  400 4  450 このテーブルを基にしてクエリを作成したいのですが、その際に、例えば「使用距離」という自動計算フィールドを、「距離」フィールドの横に表示させたいのです。 ID / 距離 / 使用距離 1 100 0 2 200 100 3 400 200  4 450 50 ・・・ の様にその行のデータから、前の行のデータの引き算を自動計算出来るような方法はあるのでしょうか?

  • ACCESSのクエリフィールドの書式表示

    ACCESS2003を使っています。タイムカードテーブルに「出社時刻」と「退社時刻」の「日付/時刻型」のフィールドがあります。このタイムカードテーブルから「出社時刻」と「退社時刻」フィールドを含むクエリを作り、勤務時間:[退社時刻]-[出社時刻]という計算フィールドを作った場合、勤務時間フィールドのプロパティで「書式」のメニューに「日付」や「時刻」が表示されたりされなかったりします。 これはACCESSのバグでしょうか?必ず表示させることはできないのでしょうか。(書式にところに時刻の形式を書き込めば表示されることは知っています。)

  • Accessのテーブルに稼働日フィールドを追加したい

    ACCESSのAテーブルの[開始日]フィールドと[終了日]フィールドにそれぞれ日付が入っています。 Bテーブルの[祝日]フィールドに年度内の祝日データが入っています。 Aテーブルに新しく[開始日]から[終了日]までの期間で土日と祝日を除いた日付(要は稼働日)の日数を表示させるフィールドを作成したいのです。 DATEDIFFで期間内の日数、期間内の土日の日数を計算することはできたのですが、Bテーブルのデータ内で期間内のデータの数を数えて引くということができません。 そもそもこのやり方でよいのかも、疑問なのですが、よい方法を教えていただけませんでしょうか? どうぞ、よろしくお願いいたします。

  • Officeアクセス テーブル「テキスト型」⇒「日付型」への変換について

    テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。 ※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。 テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

専門家に質問してみよう