Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Access 2016)
タイムレコーダーで日付をまたぐ場合の処理について
投稿日時: 21/04/16 15:45:22
投稿者: ぽろんちょ

いつも大変お世話になっております。
 
出勤ボタン・退勤ボタンを押して時間を記録するだけの単純なタイムレコーダーを作成したのですが、
日付を跨いだ場合のデータの表示がうまくできません。
 
以下が出勤、退勤ボタンを押した時の処理です。
 
 
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
     
    Set cn = CurrentProject.Connection
     
    Set rs = New ADODB.Recordset
    rs.Open "Tデータ", cn, adOpenKeyset, adLockOptimistic
     
    rs.AddNew
        rs!作業員ID = txt作業員ID.Value
        rs!日付 = txt日付.Value
        rs!出退勤区分 = 1
        rs!時間 = Now()
    rs.Update
    MsgBox ("出勤時間を記録しました。")
 
txt作業員IDテキストボックスにIDを入力すると名前が表示され、その後に出勤・退勤のボタンを押して
記録します。txt日付にはその日の日付が表示されております。出退勤区分は1が出勤。2が退勤です。
作業員ID,日付,出退勤区分,時間が「Tデータ」テーブルに保存されます。
 
これらのデータを後からクエリで集計すると、出勤日と退勤日が同じであれば問題ないのですが、
退勤日が出勤日の翌日になる(日を跨いで退勤する)と以下のように退勤時間が一段下にずれてしまいます。
 
日付      作業員ID       出勤     退勤
2021/2/3    25    2021/2/3 12:50    2021/2/3 0:45
2021/2/4    25    2021/2/4 12:55    2021/2/4 1:08
2021/2/5    25    2021/2/5 12:55    2021/2/5 1:04
 
日付を結合しているのでこうなるのは当然なのですが、日付を跨いだ場合にずれることなく
レコードに表示させるようにするにはどうすればいいのでしょうか?
どなたかお分かりになる方、宜しくお願い致します。
 
 
 

回答
投稿日時: 21/04/16 17:09:35
投稿者: Suzu

時刻だけでなく、日付の データ も NOWから取得する事はできないのでしょうか?

トピックに返信