アクセス担当のまみです。
作業時間の計算や勤務時間の管理等様々な場面で、時間の計算が必要になる時がありますね。
そんな時に手作業で時間の計算をするのはとっても大変です。
開始時刻と終了時刻の入力であとは自動計算してくれたらとっても助かりますね。
今回は時間の計算についてお伝えしますね。
Contents
テーブルを準備する
「T_時間管理」
定型入力の設定をするには「T_時間管理」をデザインビューで開き定型入力の①を左クリックします。
表示されたメッセージは「はい(Y)」を左クリックします。
「時刻(L)」を選択して「完了(F)」を左クリックします。
クエリで経過時間の計算をする
NamedFormatには設定があって、省略すると値0の設定になります。
値 | 説明 |
0 | 日付と時刻を表示。日付があると短い日付として表示され、時刻があると長い日付として表示。両方あれば両方の表示。 |
1 | 長い日付の書式として表示 |
2 | 短い日付の書式として表示 |
3 | 時刻の書式で表示 |
4 | 24時間(hh:mm)の書式で表示 |
指定した式を日付の形で返してくれます。
Format: FormatDateTime([終了時刻]-[開始時刻])
CDate: CDate([終了時刻]-[開始時刻])
FormatDateTimeって長いからフィールドはFormatにしてみた。
経過時間の計算ってフォーム上でもできるよね?やってみようっと。
クエリは「Q_時間計算」と名前をつけておきましょう。
[quads id=2]
フォームで経過時間の計算をする
フォームにテキストボックス3つとボタンを1つ配置します。
ラベルの標題 | テキストボックスの名前 |
開始時刻 | tx開始 |
終了時刻 | tx終了 |
経過時間 | tx経過 |
ボタンの標題 | ボタンの名前 |
計算 | btn計算 |
①「btn計算」を選択した状態でプロパティーシートの②「イベント」タブからクリック時に「イベントプロシージャ」を選択してコードの画面を表示します。
「Private Sub btn計算_Click()」と「End Sub」の間に下記のコードを追加しましょう。
Dim check1 As Variant Dim check2 As Variant check1 = CDate(Nz(Me.tx開始.Value)) check2 = CDate(Nz(Me.tx終了.Value)) Me.tx経過.Value = CDate(check2 - check1)
コードをコピーされたい場合は下記の記事を参考にしてください。
なので、CDateを使ってね!
時間の計算をボタン1つでやってくれるととっても助かりますね。
まとめ
時間の計算って手作業ではちょっと難しいですね。
クエリやフォームで自動で計算してくれたらとっても助かります。
色々な場面で活躍してくれること間違いなしですね!