Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7403 / 9994 ←次へ | 前へ→

【5783】Re:1日を越えた時間はどうすれば良いので...
発言  小僧  - 05/8/8(月) 11:49 -

引用なし
パスワード
   ▼わん さん:
こんにちは。

>お世話になりついでに時間計算と時間表示について教えて頂きたい

Access(VBA) の日付型に関してなのですがイミディエイトウィンドウ
(コードが表示されている状態で Ctrl + g)で確認してみましょう。

今日の日付がテーブルにあるとすると、その値は

>>>イミディエトウィンドウで「? CDbl(Date)」

「1900/01/01」からの差分である「38572」という数値になっています。

では時間はどうなっているのかとなると、

>>>「? CDbl(Now())」

小数がでてきましたよね。これが時間の部分になっています。


さて、[#3605]日日をまたいだ時の時間の計算の場合は

「PM5時」「AM1時30分」などの値が出てきますが、実際の値を調べてみると

>>>「? CDbl(#17:00#)」「? CDbl(#1:30#)」

と小数が表示されますが、整数部分は「0」になっています。
これは表示されている値は「17:00」ですが、
実際には「1899/12/30 1:30」という値が入っている事になります。

↑の方で「? CDbl(Date)」としましたが、
これも実際には「2005/08/08 00:00:00」という値ですね。

過去ログの方では「日付を持たない時間」を対象としているために

>DateDiff("n",[作業開始時間],[作業終了時間]+IIf([作業終了時間]<[作業開始時間],1,0))

となっていますが。今回は「Now()」で時間を代入しているため日付を持たせているので
そのまま「退勤時間」から「出勤時間」を引けば良いと思われます。

>>>「? DateDiff("n",#2005/08/08 12:00#,#2005/08/09 1:00#)」
>>>「? CDate(#2005/08/09 1:00# - #2005/08/08 12:00#)」
613 hits

【5751】1日を越えた時間はどうすれば良いのでしょ... わん 05/8/4(木) 13:40 質問
【5752】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/4(木) 14:27 発言
【5753】Re:1日を越えた時間はどうすれば良いので... わん 05/8/4(木) 15:35 質問
【5754】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/4(木) 16:46 回答
【5755】Re:1日を越えた時間はどうすれば良いので... わん 05/8/4(木) 19:05 質問
【5756】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/4(木) 19:30 回答
【5757】Re:1日を越えた時間はどうすれば良いので... わん 05/8/4(木) 20:28 質問
【5760】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/5(金) 11:11 回答
【5768】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/5(金) 13:53 発言
【5776】Re:1日を越えた時間はどうすれば良いので... わん 05/8/6(土) 20:30 お礼
【5777】Re:1日を越えた時間はどうすれば良いので... わん 05/8/7(日) 14:17 お礼
【5783】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/8(月) 11:49 発言
【5784】Re:1日を越えた時間はどうすれば良いので... 小僧 05/8/8(月) 12:59 発言
【5822】Re:1日を越えた時間はどうすれば良いので... わん 05/8/10(水) 20:08 お礼

7403 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078263
(SS)C-BOARD v3.8 is Free