マイクロソフトアクセスについての質問です。現在アクセスで勤務時間表を作成しています。テーブルを作成し、勤務時間を入力します。この時、入力するフィールドの種類は、テキスト型で入力しています。1日から31日までレコードを入力し、入力し終わったところでレポートを作成しました。レポートは勤務時間を並べて最後に合計時間を出すというものなのですが、ページフッタのところに、テキストボックスを設置し、その中に「sum=[残業時間]」と入力しましたが、指定した式の構文が正しくありませんと表示されます。
おそらく勤務時間を入力しているフィールドがテキスト型のためエラーが出ているものと思われますが、勤務時間を入力フィールドを数値型にすると0:00分という表示ができなくなってしまいます。
やりたい作業としては、1:00+1:00=2:00というような計算をアクセスでする場合にはどのようにしたらいいのでしょうか。
No.6ベストアンサー
- 回答日時:
補足:XDate関数、XTime関数は邪道。
そもそも、時間と時刻とは全く異なる概念。
時間は量を持っていますが、時刻には量は存在しないことは明らか。
ここを混同してシステムを組むことが間違い。
それは、社内で広く認知される考え方ではないでしょう。
例え、XDate関数、XTime関数で合計計算は出来たとしても何の意味もありません。
<勤務時間管理は時刻管理ではなく量としての時間管理>
この基本に立ち戻ることが必要と思います。
※XDate関数、XTime関数を示しておいてなんですが・・・。
※<質問を見てやおら作成>=無用な関数だからです。
No.5
- 回答日時:
>ページフッタのところに、テキストボックスを設置し、
>その中に「sum=[残業時間]」と入力しましたが、
ページフッターでは集計関数は使えません
グループフッターまたはレポートフッターで集計します
>1:00+1:00=2:00というような計算をアクセスでする場合にはどのようにしたら
日付時刻型を時間計算に流用したとしても
時刻には24:00以上はありませんから24時間以内の表示しかできませんよ
数値型で計算を行いそれをxx:xxのような文字列に変換することになります
No.4
- 回答日時:
tab1:
ID___日付___________出勤時間
1____2008/01/01__12:00
2____2008/01/02__11:00
3____2008/01/03__09:00
4____2008/01/09__00:01
このように出勤時間をHH:MM形式の文字列で入力すると仮定します。
一応、’25:00’との入力もOKということにします。
クエリ1:
合計出勤時間
32:01
SELECT XferHHMM(Sum(XferDAte([出勤時間]))) AS 合計出勤時間 FROM tab1;
さて、これがクエリで[合計出勤時間]を求めた結果です。
一応、欲する結果であると思います。
[イミディエイト]
? XferHHMM(XferDate("12:00")+XferDate("11:00"))
23:00
? XferHHMM(XferDate("23:00")+XferDate("09:00"))
32:00
? XferHHMM(XferDate("32:00")+XferDate("00:01"))
32:01
クエリの計算過程を再現すればこのようです。
要は、日付型にして計算してはHH:MM形式の文字列に直して対応しているということです。
Public Function XferHHMM(ByVal dteHiduke As Date) As String
Dim dteYYYYMMDD As Date
Dim HH As Integer
dteYYYYMMDD = CDate(Format(dteHiduke, "yyyy/mm/dd"))
HH = Left$(Format(dteHiduke, "hh:mm:ss"), 2) + DateDiff("d", "1899/12/30", dteYYYYMMDD) * 24
XferHHMM = Trim(Str(HH)) & Right$(Format(dteHiduke, "hh:mm"), 3)
End Function
Public Function XferDate(ByVal strHHMM As String) As Date
XferDate = CDate(Format(DateAdd("d", Left$(strHHMM, 2) \ 24, "1899/12/30"), "yyyy/mm/dd ") & _
Format(Left$(strHHMM, 2) Mod 24, "00") & Right$(strHHMM, 3))
End Function
片田舎の工場の一介の工員です。
ですから、これが最適な解決方法かどうかは甚だ自信がありません。
ましてや、質問を見てやおら作成した関数です。
参考程度にされてください。
No.2
- 回答日時:
まず、質問時のタイプミスでなければ「sum=[残業時間]」が間違っています。
「=sum([残業時間])」です。
> 指定した式の構文が正しくありませんと表示されます。
というのは、上記が原因でしょう。
また、
> 入力するフィールドの種類は、テキスト型で入力しています。
これが、「テーブルへ直接入力している」という意味なら、
テーブルのフィールドは日付/時刻型で定義しておくべきです。
そうではなく、フォームで入力してるなら、
「テキスト・ボックス」とはいうものの、データ型はバリアントです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- Excel(エクセル) Excel関数で日またぎの勤務時間にしるしを立てる 2 2022/04/20 17:22
- Excel(エクセル) exel 漢字・英数字混在セルの入力規則 5 2022/04/03 11:08
- その他(ビジネス・キャリア) 日報の実務労働時間の集計について困っています。 2 2023/06/09 19:00
- Excel(エクセル) エクセルの早退時間を計算したいです。計算はうまくいっているようですが… 1 2022/12/26 16:22
- 会社・職場 Excel、Googleスプレッドシートなどへのデータ入力 2 2023/07/06 05:59
- Excel(エクセル) エクセルで作業ごとの時間をグラフ化し、勤務時間より超過している作業の割り出しをしたいのです 6 2022/08/15 22:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セブンnowは駅前とかでも配達し...
-
ゆうちょ銀行のアプリで お客様...
-
Accessで24時間を超える時間の...
-
宀や广など、部首だけを入力す...
-
○○の何乗はどう入力?
-
フォルダに鍵を・・・
-
ATOKのポップアップを消したい
-
Accessのデータ型の日付/時刻型...
-
縮尺について
-
弥生会計の青色申告特別控除額
-
アクセス 生年月日の和暦表示
-
Accessの定型入力(000\\-0000;0;_)
-
住所入力支援を使用したくない...
-
キングソフトのスプレッドシー...
-
午睡チェックアプリを探しています
-
一太郎スマイルのツールバー
-
【IME2002】テンキーからの入力...
-
ATOK2005のカーソルのとこ...
-
ソースネクスト製品でユーザー...
-
パソコンで購入したデーターが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セブンnowは駅前とかでも配達し...
-
DIORのオンラインショップの購...
-
Accessで、定型入力を使って年...
-
宀や广など、部首だけを入力す...
-
Accessで24時間を超える時間の...
-
Accessのデータ型の日付/時刻型...
-
Accessの定型入力(000\\-0000;0;_)
-
Excelのワークシート上に配置し...
-
ATOKのポップアップを消したい
-
フォトショプ でテキストを改行...
-
PCやスマホで文字入力をする際...
-
日またぎにも対応した勤務時間...
-
サクラエディタの入力補完機能...
-
UWSCで全角(ひらがな、カタカ...
-
graphvizの日本語文字化け対策
-
ジャニーズショップでログイン...
-
PDF応募ハガキの入力について
-
DaVinci Resolve
-
○○の何乗はどう入力?
-
Amazonの配送先住所入力の自動...
おすすめ情報