一度はハマる24時間を超えた時間の計算

こんにちは。伊川(@naonaoke)です。

今回は、ご視聴者様から、質問がきましたので、回答したいと思います。

質問内容は、時間の計算です。

単純に質問に答えるなら、ブログではなくコメント欄で回答します。

しかし、時間の計算という事から、24時間を超える計算についても説明をしたいと思います。

ACCESSで挫折をする原因の1つが、時間の計算です。

時間の計算が、思うようにできなくて、Excelに浮気する人が結構いらっしゃると思います。

このブログはこんな人にお勧め

このブログはこんな人にお勧め
  • ACCESSで時間の計算をしたい人
  • ACCESS勤怠管理をしたい人
  • 24時間を超える計算をACCESSで行いたい人

このブログを、読み終わるころには・・・・

ACCESSと、Excelの役割分担を理解できると思います。もちろん、ACCESSでも24時間を超える計算はできます。
しかし、ACCESSは時間の計算は、あまり得意ではありません。
ACCESSとExcelの連携は、重要だという事が理解できると思います。


スポンサーリンク

ACCESSで一度はハマる時間の計算

24時間を超える計算は、ACCESSを利用した人なら、一度は経験するはずです。

なぜ、Excelのように、24時間を超える計算ができないのか?と。

Excelは、書式設定を変更するだけで、カンタンに24時間を超える計算ができます。

この時点で、時間の計算については、Excelの方がかなり優秀です。

では、ACCESSで、時間を管理するデータベースはできないのでしょうか?

その疑問を私なりに解決してきたので紹介をします。

時間の計算 作業手順 その1 データベース確認


このような勤務時間を管理しているデータベースがあるとします。

上の図では、10行ですが、通常はもっとあります。

この時に、時間_1から時間_2を引いた時間を求めたいというのが質問の内容でした。


これが計算式です。

ご視聴者様からの質問
アクセスのクエリで時間演算のところで例えば10:30から 02:10引き算して結果として08:20出るようにしたいですどうすれば良い教えていただけませんか?


書式設定を忘れないようにしましょう。

これで完成です。

時間の計算 作業手順 その2 クエリで計算した時間をどのように管理するのか?

完全に私事ですが、以前、会社で利用したシステムで疑問に思ったことがありました。

時間は、全て、秒で表示されます。

10時間20分のような表示ではありませんでした。

なぜなのか理解できませんでした。

ACCESSで24時間を超える表示はできるのか?

結論から言うとできます。

しかし、日付/時刻型としては、扱われません。文字として扱われます。

そうなると、文字として扱われると、計算が出来ません。

ここがネックになります。

だから、私はこの方法は使いません。

結局、ACCESSは、時間を単純に秒で保管して、あとは、利用者が勝手に時間に直してくださいというスタンスです。

しかも、結構面倒なのです。

面倒なうえに、汎用性がない知識を覚える気がしませんでした。

時間の計算 作業手順 その3 hh:mm:ss形式を一旦、数値型の秒に変換する



この計算は、小学生のころにやったと思います。

このように一旦、秒に変換して保存しましょう。

後は、クエリがなんとかしてくれると思いたいのですが、時間だけはそうはいかないのです。

時間の計算 作業手順 その4 ACCESSとExcelを連携させる

ACCESSとExcelを連携させると、ACCESSの時間の計算はすべて解決します。

Excelのセルは、どのような値も、変幻自在にかえてしまいます。

これが、直感的に操作できるExcelのいいところです。

連携するコードはカンタンです。


前回のサブクエリをExcelへ転送するコードを、そのままパクリました。

特に難しいことはないです。


時間の計算 作業手順 その5 番外編

秒をhh:mm:ssに変換するときは、TimeSerial関数を使います。


この関数は素晴らしい関数なのですが、秒が、32,000を超えるとエラーになります。

TimeSerial の引数の型が Integer なので、最大 32767 までしか受け付けないのです。


このエラーの特定にも結構時間がかかりました。

このエラーの特定ができた時に、時間の計算は、Excelに一任すべきと思ったのです。

ここがポイント

ここがポイント
Function8.png
時間の計算に関しては、紆余曲折がありました。結果的に、ExcelとACCESSの連携を主軸にするのが最善の方法だと思いました。

今のところ、この方法で、私自身の業務には、なんの支障もありません。

この方法が絶対的に良いというわけではありませんが、参考にしていただけたら幸いです。

動画とブログでわかりやすくExcelとACCESSを紹介しています
created by Rinker
¥2,948 (2020/11/27 13:57:14時点 Amazon調べ-詳細)

まとめ

このサイトでも、同じような内容を何度か紹介しています。

時間の計算は、正直、Excelだけでは、やりきれなくなる可能性があります。

そんな時は、ACCESSを保管庫(データベース)として利用すると、一層便利になるかもしれません。

最後まで読んでいただき、ありがとうございました。

今回のサンプルファイルは、No182です。

サンプルファイルを購入希望の方はココをクリック
サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事