• 締切済み

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

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

みんなの回答

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

>必ず表示させることはできないのでしょうか。 明示的に日付型に変換すれば、表示されると思います。 勤務時間:CDate([退社時刻] - [出社時刻]) 「時刻」と「時間」は微妙に意味が違います。 時間を時刻で表示した場合、若干問題があります。 24時間以上差がある場合は、注意してください。 例えば、上記の勤務時間を月で合計した場合など、 期待通りの表示にはならないと思います。 余計なお節介かもしれませんが、何らかの計算に使うなら、 DateDiff関数を使う方が無難です。 例:時間単位、端数は切り捨て 勤務時間(時):DateDiff("h", [出社時刻], [退社時刻]) 例:30分単位、端数は切り捨て 勤務時間(分):Int(DateDiff("n", [出社時刻], [退社時刻]) / 30) * 30

humu150
質問者

お礼

ご親切な説明ありがとうございました。 ご説明の意味はよく分かりました。たまたま計算フィールドのプロパティで、書式に時刻が表示されてしまったので頭が混乱してしまいました。必ず時刻を表示させるにはCDateで時刻を明示しておけば良かったのですね。 ありがとうございました。

関連するQ&A