• ベストアンサー

ACCESS2010 クエリ 24時間以上表示

クエリで計算をしましたが、24時間以上の表示にはなりません Format(Sum の計算です どうすれば 24時間以上の表示にできるのでしょうか?  あと、合計の合計も出したいのですが どのように計算すればいいですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

【バグ発見】1レコード目の合計値が違っていました。 ウン、間違いなしと思ったが・・・。1レコード目の合計値が違っていました。そこで、経過した時間そのものを調べるやり方に・・・。 Public Function FormatTime(ByVal intTime As Date) As String   Dim T As Integer   T = DateDiff("n", "00:00:00", intTime)   FormatTime = Format(T \ 60, "0:") + Format(T Mod 60, "00") End Function これで、3レコードの合計値に限っては正しく表示するようになりました。

morichika1001
質問者

お礼

返事遅くなってしまってすみません 今、やってみたら、見事に表示しました なんども、コメントをいただいてありがとうございます また、わからないことあったら、教えてくださいね  ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

回答No.7

【補足の補足】XferDate()で使っているCutStr()。 Public Function CutStr(ByVal Text As String, _ ByVal Separator As String, _ ByVal N As Integer) As String   Dim strDatas() As String   strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function

全文を見る
すると、全ての回答が全文表示されます。
回答No.6

【補足】縦横集計および合計の求め方。 添付図のような縦横集計および合計計算は必ず発生します。まず、例の場合の各プロパティの設定を示します。 プレス縦計.コントロールソース:=FormatTime(Sum(XferDate([プレス]))) 総合計.コントロールソース:=FormatTime(Sum(XferDate([行合計]))) 要は、文字列であれDate型であれDate型に変換して演算して目的を達成しています。もちろん、 プレス縦計.コントロールソース:=FormatTime(Sum(([プレス])) と、不必要な変換はしなくても構いません。添付図のテストでは、次のXferDate()の引数に日付・時刻型をセットしても問題なく動作を確認するために敢えて一度変換しています。 Public Function XferDate(ByVal strTime As String) As Date   XferDate = (CutStr(strTime, ":", 1) * 1) / 24 + (CutStr(strTime, ":", 2) * 1) / 1440 End Function

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

古いころの質問回答ですが http://okwave.jp/qa/q858042.html にある通り、アクセスでは、 (1)複数レコード分を合計したときに24時間を超える、とか (2)1人分だが続きの1単位などで(たとえば超過勤務で)30時間など、24時間を超える入力をする などの場合、時間数のままで(1日(数日)に繰り上げずに)時間のままで表示する書式は用意されていないようです。エクセルの[h]:mmに当たるようなものがない。 上記質問のころから、いまはバージョンが上がっても、その後、改善されていないようです。開発したMSの必要性の認識が不足している。 全レコードで、時間と分を分けた2フィールドにする手はあるが、分の部分の合計などで、1(数)時間への繰上りは望むのですよね。すると行き詰まる。 VBAでも、自製の書式といっても、許される書式の中での範囲内だけのようで、テーブルやフォームの書式のレイヤー的なものがあると思うのですが、そこに私たちユーザーが、直接思う通りの表示をする方法(API利用か?)は、解説を見たことがない。そこまでユーザーにいじらせないのだろう。 文字列で考える方法はあるが、その後計算には使えない。 参考 http://stabucky.com/wp/archives/3203 https://support.microsoft.com/ja-jp/kb/210276/ja 「アクセス 24時間以上表示」でGoogleで照会すれば、参考記事がたくさんある。

morichika1001
質問者

お礼

返事遅くなってしまってすみません アクセスも、[h]:mmがあればいいのですがね 2016では 改善されるのですかね?

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

【補足】なぜ、最初のFormatTime()は計算をミスったのか? それは、 H = TimeValue * 24 で切り上げたからです。 Public Function FormatTime(ByVal TimeValue As Date) As String   Dim H As Integer   Dim S As Integer   H = Fix(TimeValue * 24)   S = TimeValue * 24 * 60   FormatTime2 = Format(H, "0:") + Format(S Mod 60, "00") End Function と、時間を切り上げさせなければ正しい値になります。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

テスト図です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

1、Accessの日付・時刻型は1日が1に相当する。 2、つまり、一日は1*24=24時間。 3、つまり、一日は1*24*60=1440秒。 この約束事に従えば、FormatTime()は次のように書けます。 Public Function FormatTime(ByVal Time As Date) As String   Dim H As Integer   Dim S As Integer   H = Time * 24   S = Time * 24 * 60   FormatTime = Format(H, "0:") + Format(S Mod 60, "00") End Function 添付のクエリの実行図のSQL文は次の通りです。 SELECT 時間.*, FormatTime([プレス]+[板金]+[組立]) AS 合計, * FROM 時間; PS、近頃ミスが多いのでよくチェックされ自己責任で・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access クエリとテーブルの合計値を一緒に表示

    クエリの合計値と親テーブルの合計値をフォーム上にて表示したいのですが、 うまく行かずに困っています。 クエリにて抽出した値の合計 Sum([Q抽出クエリ],[利用金額]) と、 抽出前の合計 Sum([T検索履歴],[利用金額]) を両方表示させたいです。 現状は下記の通りです。 ■使用テーブル・使用クエリ テーブル  [T検索履歴] ------- フィールド [検索履歴ID] [キーワード] [利用金額] クエリ   [Q抽出クエリ] …T検索履歴から特定のキーワードを含むレコードを抽出 フィールド [検索履歴ID] [キーワード] [利用金額] ■フォーム フォームのレコードソース … [Q抽出クエリ] ■現状と問題点 (1)[Q抽出クエリ]にて、キーワード『保護』を含むレコードを抽出します。 (2)抽出されたレコードの[利用金額]を、非連結テキストボックス tBox1 に表示します。 式:tBox1のコントロールソース =Sum([利用金額数]) (3)全体の利用金額合計を知るために、 [T検索履歴]の[利用金額]の合計値を非連結テキストボックス tBox2 に表示させます。 (ここが望む結果になりません。) 式:tBox2のコントロールソース =Sum([T検索履歴],[利用金額数]) 実行した結果 tBox1 … 抽出されたレコードの[利用金額]合計を表示 tBox2 … 上に同じ 望んだ結果 tBox1 … 抽出されたレコードの[利用金額]合計を表示 tBox2 … [T検索履歴] の[利用金額]合計を表示 以上、どうしたら良いのか分からず困っています。 宜しくお願い申し上げます。

  • ACCESS クエリで同一人物の数値の合計表示は?

    洗濯クエリで現在以下のように表示しています。 数値  生徒番号   氏名 4    100     田中 6    120     鈴木 4    100     田中 3    130     伊藤 6    120     鈴木 ・・・ これを数値のみ合計して以下のように表示したいのです。 生徒番号 氏名   数値合計 100    田中   8 120    鈴木   12 130    伊藤   3 というように「数値」の部分のみ合計したいのです。 クエリのフィールドに 数値合計:Sum[(数値)] としましたが、これではダメなようで・・・。 どうすればよかったでしょうか!? 教えてください!!!

  • Accessのクエリー 計算について

    N番号をキーに容積を計算するクエリを作成しています。 それには条件があり、種別が1の場合はマイナスして計算、種別が2の場合はプラスして計算という風にしたいです。 単純にSUM関数を使用するだけではできないと思うのでやり方を教えて下さい。 条件を含めていないSQLは・・・ SELECT DISTINCTROW 種別, N番号, Sum(容積) AS 合計容積 FROM テーブル名 GROUP BY 種別, N番号; となっています。

  • アクセス クエリ 時間の合計

    かなり初歩的な質問かと恐縮ですが、 フィールド名:時間 12:28 14:04 13:00 7:50 上記の様にアクセスのテーブルに時間が入力されている列をクエリの 集計で合計すると表示がおかしかったので、プロパティの書式に 時刻 (S)を指定しました。 そうすると時間の表示は正しい形となったのですが、 合計値がおかしな状態です。 エクセルでは[h]:mm:ssと書式を指定すれば縦列の時間合計値が 正しく表示されますが、アクセスではどういった指定をすれば 時間の合計をすることができるのでしょうか?

  • Accessのクエリで、パソコンに合計0でも0と表示してもらいたい

    8個のカテゴリーの中に6000くらいの入力があります。関係するデータの数は500くらいです。それぞれのデータが1つ以上のカテゴリーに現れることが多いので、その分布を分かりやすく調べたいのです。 クエリーで1つのデータごとにそれぞれのカテゴリーに幾つ現れるかをカテゴリは、GROUP BYでまとめて、データは、COUNTで数えるようにしました。 で、後で表にまとめたいのですが、データによってはCOUNTで0になるところのカテゴリーも表示しないで、次にとんでます。これでは統一した表にしにくいので、合計0のところも、カテゴリーは表示して、そこに0と書いてもらいたいです。これを一つのクエリ内だけでやりたいので、外部結合を使って別のクエリとで2個使ってするのは避けたいです。計算が0のところに0を入れる方法を教えてください。

  • access クエリ

    access2003 クエリで質問です。 クエリ内容 1 P12345 3:00 1 2 P12345 2:50 0 2 P12345 1:00 1 1 P12222 2:00 1 1 P13333 1:00 1 2 P13333 2:00 1 工程 番号 時間 完了 右端の完了の1があれば同じ番号を合計したいのです。 どこから手をつけてよいのかわかりません、そもそもaccessで可能なのでしょうか? このクエリをexcelへ移して計算さすべきなのかわかりません。 accessでもexcelどちらでもかまいません、どうか宜しくお願いいたします。

  • Accessの集計クエリで計算

    Microsoft Access2016において、クロス集計クエリに表示される数値を使って計算をするには、どこにどんな数式を入力すれば良いですか。テーブルに表示される数値ではなく、クロス集計クエリで計算された合計の値を使 います

  • アクセス クロス集計クエリ 縦の合計

    テーブル1には 会社名 取引日 金額 A社 2014/01/01 ¥100 B社 2014/01/02 ¥200 A社 2015/01/01 ¥500 というデータがあります。 このテーブル1を基にクロス集計クエリで TRANSFORM Sum([テーブル1].[金額]) AS 金額の合計 SELECT [テーブル1].[会社名], Sum([テーブル1].[金額]) AS [合計 金額] FROM テーブル1 GROUP BY [テーブル1].[会社名] PIVOT Format([取引日],"yyyy"); というクエリを自動生成しました。 この時、横の合計ではなく縦の合計(年ごとの合計)を表示するには良いでしょうか? サブクエリというのを使うようですが、どうすればいいかわかりませn。 よろしくお願いします。

  • Access クエリ このレコードセットは・・・

    いつもお世話になります。 Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。 ■テーブル1  ・顧客ID(主キー)  ・顧客名  ・住所  ・TEL ■テーブル2  ・顧客ID  ・取引ID(主キー)  ・請求金額 ■クエリ1(集計クエリ)  ・顧客ID グループ  ・請求金額合計: Sum(請求金額) 合計 ■クエリ2(実際に使用するクエリ)  ・顧客ID(テーブル1)  ・顧客名(テーブル1)  ・住所(テーブル1)  ・TEL(テーブル1)  ・請求金額合計(クエリ1) このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。 ・請求金額合計(クエリ1)を除けば問題なく更新できます。 ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。 どなかた良い方法をご教授下さいませ。

  • エクセル 時間集計 

    エクセルの時間計算について教えて下さい。 8:00×2=16:00 8:00×2=16:00 の単純な計算のあとSUMで合計時間をだしてみると32:00と表示されないで、8:00となりました。お願いします。

このQ&Aのポイント
  • 賃料の値上げについて不動産屋の立ち位置について
  • 家賃の値上げの理由を不動産屋に求めると、家主と話すように言われる
  • 大手不動産会社の仲介業務に疑問がある
回答を見る

専門家に質問してみよう