• 締切済み

Access2000でのデータ型について

日付・時刻型というデータ型はあるですが、時間型というのは、どうすればよいのでしょうか? 例えば、毎日のトレーニング時間を記録し、その記録データの平均や合計を出したいのですが・・・ よろしくお願いします。

  • Cloes
  • お礼率42% (18/42)

みんなの回答

  • Nii
  • ベストアンサー率48% (79/162)
回答No.5

書式を dd hh:nn:ss としたら、 25:00→01 01:00:00 60:00→02 12:00:00 と表示されると思います。 日付・時刻型というデータ型を使用している限り、 1日→24時間 1時間→60分 という呪縛からは逃れられないでしょう。 日数計算等をする時には、閏年等を考慮しなくてすむので、非常に便利なのですが、今回の用件からは、ずれてしまっていたみたいですね。すみません。 60:00のように表示したいのならば、時・分、別々のフィールドを作成し、小計:[時]*60+[分]てな具合に、最小の桁にあわせて変換し、その値元にを合計・平均を求めて、最後の表示の時点で、合計:Format([小計] \ 60,"00") & ":" & Format([小計] mod 60,"00")みたいにする位しか思いつかないのですが。 なお、入力フォームを作成されているのならば、テーブルには分に変換後の数値を入れてもいいかな?と思います。 只、その場合、表示の時は、計算して表示しなければならないので、コントロールソースで、フィールドは指定出来ませんが・・・ メモ Mod 2つの数値の除算を行い、その剰余を返します。 \ 2つの数値の商を計算し、結果を整数で返します。

  • Nii
  • ベストアンサー率48% (79/162)
回答No.4

>前提のデータ型は、やはり、日付/時刻型でしょうか? そうです。 >そうであると、合計、平均が出ないのですが・・・ 例 テーブル 時間 日付/時刻型 クエリ-----最初は、合計を SELECT Sum(テーブル.時間) AS 時間の合計 FROM テーブル; このままプレビューすれば、小数点の数値で表示されてしまいますが、時間の合計フィールドのプロパティを開き、書式を、時刻 (S)にすれば、合計あいません? クエリ2---合計と平均を SELECT Sum(テーブル.時間) AS 時間の合計, Count(テーブル.時間) AS 時間のカウント, [時間の合計]/[時間のカウント] AS 平均 FROM テーブル; 以上、クエリで例を示したつもりですが、最終が、文字列という事でしたら、Format関数で作成出きると思います。

Cloes
質問者

補足

Niiさん、こんにちは 毎度、回答いただき、恐縮です。 ご教示に基づき、作業したところ、計算できるようになりました。但し、合計が24時間を越すと、以下のように表示されてしまいます。対処法ありますでしょうか? 25:00 → 1:00 60:00   12:00 よろしくお願いします。 

  • Nii
  • ベストアンサー率48% (79/162)
回答No.3

テーブルを作成された時に、書式(?)という項目が左下にありませんでした? そこの書式を"HH:MM:SS"とされたら、テーブルをプレビューした時に、12:59:59てな具合に表示されると思います。 他の書き方とか、より詳しくは、その項目で、F1キーを押したら、HELPが表示されると思いますので、そちらを参考して下さい。 入力は、:を入力する分手間がかかってしまうと思いますが、合計・平均は、そのまま計算出来たと思いますので、60進を10進に置き換えながら入力するよりかはいいと思いますよ。(入力フォームの工夫でいくらでも逃げれますし) 後、時間差を求める時は、datediff関数、何日後とか、何時間後とかは、dateadd関数を使用されればと思います。 なお、Accessを参照せずに、記憶のみで記入してますので、間違ってるかも・・・

Cloes
質問者

補足

Niiさん、回答ありがとうございます。 データ型という大枠の中に一つのパラメータとして書式というものがあると理解しますが、Niiさんの回答の前提のデータ型は、やはり、日付/時刻型でしょうか? そうであると、合計、平均が出ないのですが・・・ ご検討ください。

  • kitunekko
  • ベストアンサー率53% (7/13)
回答No.2

エクセルでは時間・日付のデータは 「シリアル値」で管理しています。表示は1:00となっていても、計算に使われるのはシリアル値なので そのまま計算するとうまくいきません。 シリアル値を時間的(?)数値にするには、その値を"1:00:00"で割ってやります。計算対象となる数値をすべて処理してから、もしくは計算後にこの処理をしてやると、うまくいきます。 ちなみに24時間をこえると、日付のほうに繰り上がりが生じてしまいますので、(つまり24時間を越えるとまた0時間になってしまう)セルの表示形式を「標準」に戻しておくと、24時間を超える時間についても表示できます。 なお、計算の時はダブルクォーテーションをつけたまま割ってください。 例: =A5/"1:00:00" これでたぶん上手くいくと思います。

noname#1296
noname#1296
回答No.1

時間を10進数で表現するなら通常の通貨型でいいのでは ないでしょうか?2時間30分なら2.5って感じで。 60進数で表現するなら集計する際に10進数に変換する必要があるかと思います。

関連するQ&A

  • 日付データなしで撮影したい

    デジタルカメラで撮影すると、撮影した日付、時刻などが必ず記録されますが、この日付、時刻などのデータなし、あるいはデータを記録せずに撮影することはできないのでしょうか。 方法が有るのなら教えて下さい。

  • ACCESSのデータ型変更について

    クエリを利用してテーブルを新規作成する時に formatで書式を変換すると日付/時刻型のデータが テキスト型のデータに変わってしまったのですが 新規作成したテーブルのデータも日付/時刻型に直すには どのようにすれば出来ますか 宜しくお願いします 日時 (日付/時刻型) ―――――――――― 2002/05/31 13:54:28 2002/05/31 15:09:55 2002/06/01 10:40:06 2002/06/01 10:40:08 ――――――――――  ↓ テーブルの日時データを 日時:Format(日時,"日付 (L)")で書式を変換して テーブルを新規作成する  ↓ 日時 ―――――――――― 2002年5月31日 2002年6月1日 ――――――――――  ↓ テーブルの日時がテキスト型になってしまいます テキスト型を日付/時刻型に変更したい

  • 時刻データを日付データへ (Access2.0)

    あるシステムからデータを抜き出し、アクセスやエクセルにて二次加工 利用しています。システム側では、以下のように時刻欄を(便宜的に) 日付として利用しています。 時刻欄に入力されている 6:01:27 (2006年01月17日の意味) これを数値表示させた場合以下の通りであり、当然、時刻として扱われ てしまいます。 2006/01/27  (38744) 6:01:27 (0.2510069) やむなく 6:01:27 のまま日付表示を意味するとして印字しているので すが、このままでは日数計算など数式に取り込むことができません。 6:01:27 を計算式にて日付データへ変換することは可能でしょうか? 識者の方、ご経験者の方アドバイスいただけましたら幸いです。

  • ExcelでAccessの時間データがおかしい

    今回コンピュータが新しくなり、Excel・Access共に新しくなり、 以前使用していたExcel2003・Access2003からExcel2013および Access2013の32bit版になりました。 Accessのデータベースは前から使用している2000仕様です。 使用しているデータは出退勤のデータで、ExcelでODBCを利用して Accessのデータを読んでいます。 問題は、出勤日や出勤時間などは、日付と時間の混合で入っていて問題なく Excelに読み込まれますが、勤務時間は「1900/1/0 0:00」と出力され 時間のみの表示形式にしても「0:00」と表示されます。 Accessのフィールドデータ型は共に「日付/時刻型」になっていますが 前者は日付と混合で、後者は日付無しの時間のみです。 クエリーの編集でデータが表示されたものは、問題なく勤務時間が 時間で表示されています。 どうしてExcelに読み込むと時間が無くなってしまうのでしょうか よろしくお願いします。

  • Accessの日付/時刻型のデータ変換について

    Accessで日付/時刻型で持っているデータを整数型に変換したいと思っておりますがうまくいきません。 日付/時刻型の「時刻(S)」でテーブル上にデータを入れています。これを整数に変換したいと思っています。 例)10:20 → 1020 そこで、 CInt([変換したいフィールド名]) をクエリで実行してみたのですが、結果は「0」、「1」、「#エラー」が表示され、変換したい形に変換することができませんでした。 どのようにしたら、例にある変換の仕方ができるのか教えて頂けますでしょうか。宜しくお願いいたします。

  • ACCESSのデータ横展開について

    ACCESS2000にて現在、営業担当者の勤怠データを集計しております。 勤怠データから ”訪問時間”、”移動時間”、”業務時間” を計算し (1)営業担当者別の日別の ”訪問時間”、”移動時間”、”業務時間”の合計値を出す。 (2) 上記(1)のデータ更に ”1件目の訪問時間”、”2件目の訪問時間”、・・・・・・・ と言う様に    その日の各訪問時間も加える。 上記内容にて作業をしておりますが、上記(1)については 集計クエリ等を使用して作成出来ました。 しかし (2)については ’1.各訪問時間のデータをどうやってフィールドとして作成するか’ ’2.集計クエリで作成した合計値と明細データ(各訪問時間)をどの様にして1レコードにするのか’ が解らず困っております。 上記2点お解りであれば教えて頂ければと思います。 尚、今回の元データと 求めれているデータのイメージを下記に記載します。 (元データ) 社員コード| 日付 |区分|開始時間|終了時間|連番|G連番※| ============================================================ |1111111 |2013/10/01 |業務| 08:00 | 09:00 | 1| 1 | |1111111 |2013/10/01 |訪問| 09:10 | 09:30 | 2| 2 | |1111111 |2013/10/01 |訪問| 10:00 | 14:00 | 3| 3 | |1111111 |2013/10/01 |業務| 15:00 | 17:00 | 4| 4 | |2222222 |2013/10/01 |業務| 08:00 | 09:00 | 5| 1 | |2222222 |2013/10/01 |訪問| 10:00 | 15:00 | 6| 2 | |2222222 |2013/10/01 |訪問| 15:30 | 16:00 | 7| 3 | |2222222 |2013/10/01 |業務| 16:30 | 17:00 | 8| 4 | ※G連番は 担当者の日別の勤怠明細に振られた連番 上記のようなテーブルのデータから (求められているデータ) 社員コード| 日付 |訪問時間合計|移動時間合計|業務時間合計|1件目訪問時間|2件目訪問時間 ================================================================================== |1111111 |2013/10/01|    260|    100|   180 |    20 | 240 |2222222 |2013/10/01|    330|    120|   90 |    300 | 30 上記の様データを求め様としております。 尚、上記の時間単位は”分”で、移動時間については"[開始時間]-1つ前のレコードの[終了時間]" で算出しております。 お手数ですがよろしくお願いします。

  • アクセスでのテーブルデータ入力

    テーブルでデータ入力を作成してますが 日付フィールドで    56/12/01 と入力したいのに、エンターキーで確定すると    31/12/01 と和暦で表示されてしまいます。 どうしたら西暦2桁で表示できますか? データ型は日付/時刻、定型入力は西暦日付の 年/月/日 に設定してあります。

  • Accessテーブルのデータ型を変更したい

    Access95 Version7を使っています。 DateDiff関数を使って日数を出したいのですが、 テーブルにあるデータは”テキスト型”になっています。 これを”日付/時刻型”に変換するには、どうすれば良いのでしょうか? データ例:20010520 というように、8桁で入っています。 宜しくお願いします・・・。

  • Access2013で翌日のデータのみのクエリ

    お世話になります。 Access2013を使用しており、2つの日付フィールドを比較して 翌日のレコードのみ抜き出したい場合のクエリについて質問で ございます。 日付Aフィールド と 日付Bフィールドが あり、それぞれ日付と時刻が書式yyyy/mm/dd hhmmss で格納されております。 このうち、クエリで抽出したいのは、 日付Bフィールドに格納されている、 日付Aフィールドの翌日のレコードのみを 抽出したいです。 その際、時刻(hhmmss)は無視して翌日のレコードを 抽出したいです。 例えば、 日付Aフィールドに 2016/08/24 15:00:00 2016/08/24 16:00:00 2016/08/24 17:00:00 というデータが格納されていて、 日付Bフィールドに 2016/08/25 00:00:00 2016/08/25 17:00:00 2016/08/26 00:00:00 というデータが格納されていた場合、 日付Bフィールドの 2016/08/25 00:00:00 2016/08/25 17:00:00 のみ抽出したいです。 この場合のクエリの設定方法を教えてください。 どうぞ宜しくお願いいたします。

  • Accessで24時間を超える時間の入力ができない。

    時間を入力するときに、 25:00と入れると1:00と認識してしまいます。 24:00を超えると、自動的に切り替わるようですが、 これを「25:00」と表示させる方法はないでしょうか? 10進法で入力する方法も考えたのですが、 個々の値を10進法に変換して入力すると、 それらを合計したデータにわずかな差が生じてしまいます。 エクセルだと、25:00表示が可能なのは確認しましたが、 Accessでの方法がどうしても探せません。 環境→Access 2000 今までの設定方法→データ型:日付/時刻型,書式:時刻(S) 素人なので、詳しく教えて頂けると助かります。 よろしくおねがいします。

専門家に質問してみよう