Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2016)
関数について
投稿日時: 18/09/26 22:40:51
投稿者: たんしお

Accessの関数について
 
テーブルデータにインポートした勤怠データの時間表記の形式が130.30という数値のため、130:30に変換する式をクエリ( Format([労働時間]*100,"00¥:00"))にて作成して変換はできたのですが、この数式に変換したフィールドの項目(労働時間+休出時間)の合計を表す式を組み合わせすることはできるのでしょうか
単純に+ではできず、調べてもわかりませんでした。

回答
投稿日時: 18/09/27 09:57:05
投稿者: sk

引用:
テーブルデータにインポートした勤怠データの
時間表記の形式が130.30という数値

それを「分単位の時間を表す数値」に
変換することが先決かと。
 
引用:
Format([労働時間]*100,"00¥:00")

(Int(Nz([テーブル名].[労働時間],0))*60)+((Nz([テーブル名].[労働時間],0)*100) Mod 100)
 
引用:
休出時間

このフィールドも同様。
 
引用:
(労働時間+休出時間)の合計を表す式

その上で、両者の値を足せばよいでしょう。

回答
投稿日時: 18/09/27 10:09:31
投稿者: Suzu

130.30
  ↓
130:30
 
整数部が時間、小数点以下が分を表わすと考えて良いでしょうか。
 
この労働時間のを計算しているクエリの演算フィールドが
『(労働時間+休出時間)の合計を表す式』でしょうか。
 
 
その時の演算部分のSQLは
 
SUM([労働時間]+[休出時間]) AS 労働時間
 
で良いのかな。
 
 
労働時間と、休出時間 の加算結果 を
あるフィールドをグループ化をして 【合計】した結果ですよね。
 
ですので、行うとすれば
 
Format(SUM([労働時間]+[休出時間])*100,"00\:00")
なのでしょうけど、
FORMATの内側でSUMは使えません。ですので無理です。
 
サブクエリや、DSUM関数を使えば可能でしょうけど、
処理速度が遅くなるでしょうから、現状のままが良いと思いますよ。
 
 
 
P.S.
 
ところで。。
[労働時間]+[休出時間]
 
労働時間 0.3
休出時間 0.3
の0.6 となり、
分側でなく、時間側に繰り上がらないといけないのでは?
 
仮に
 
労働時間 休出時間
0.3 0.3
0.3 1.3
1.0 1.0
 
の時
 
求めたいのは 5時間。
 
式の計算結果では 4.2 時間になりますが。。
 
私なら、0.5 → 30分 としますよ。

回答
投稿日時: 18/09/27 10:18:57
投稿者: Suzu

PSの部分が主旨の質問でしたか、、失礼しました。

投稿日時: 18/10/03 15:51:11
投稿者: たんしお

sk様
Suzu様
 
合計の計算をすることができました。
いつもありがとうございます。