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

このQ&Aのポイント
  • Accessのクエリとテーブルの合計値を一緒に表示する方法について困っています。
  • 現在、クエリにて抽出した値の合計とテーブルの合計を表示させる方法が分かりません。
  • 具体的には、Q抽出クエリから抽出したレコードの利用金額の合計とT検索履歴テーブルの利用金額の合計を表示させたいです。
回答を見る
  • ベストアンサー

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検索履歴] の[利用金額]合計を表示 以上、どうしたら良いのか分からず困っています。 宜しくお願い申し上げます。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

あまり感心した方法ではないが、以下のように変更する。 式:tBox2のコントロールソース =DSum([利用金額数],[T検索履歴]) 本来はQ抽出クエリにこういう値を持つフィールドができる ようにSQLを組むべき。 何で感心しないかと言うと、テーブルがODBCリンクに よる他のDBシステムの場合、Dxxx系関数の処理速度が 極端に悪くなることがあるからです。現在はAccessでも、 将来SQL Serverを導入しようなどという計画があるなら クエリの内容を修正することを薦めます.

その他の回答 (1)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

別に合計テーブルを用意する。 区分 値 01  クエリの利用金額計 02  テーブルの利用金額計 の2レコードをクエリで値格納する。処理のたびに上書きする。 フォームでは DLOOKUP関数使うことで2つともそれぞれ取得可能です。

関連するQ&A

  • フォームのテキストにテーブルの合計額を表示したい

    「T合計」テーブルの「数字」フィールドにいくつかのレコードに数字が入力されています。 このT合計の合計額をフォームのテキストボックスに表示させたいのですがうまくできません。 クエリ1を作成し、式1: Sum(T合計!数字)としたらうまく表示できました。 フォームのテキスト0のプロパティの「コントロールソース」に「=クエリ1!式1」としたら「#Name?」になってしまいます。 また、「コントロールソース」に「=Sum([T合計]![数字])」といれたら「#エラー」になってしまいます。 そもそも「コントロールソース」に入力することが間違えなのでしょうか? どうすればテキストボックスにT合計の合計額を表示することができるのでしょう? よろしくお願い致します。

  • Accessのフォームヘッターに表示されるレコード件数を表示させることは可能でしょうか?

    Access2003を使用しています。 お客様からの問い合わせを記録しているテーブルがあります。テーブル名:T対応記録 それを月単位で表示できるフォームを作りました。フォーム名:F対応履歴_月単位抽出 (レコードソースはT対応記録から作ったクエリです。パラメータクエリで発生日でyyyy/mm形式で抽出できるようにしました。) 詳細には抽出月のレコードが表示されます。 そのフォームヘッターに、抽出レコードの総件数を表示させたいのですが、可能でしょうか? レコードセレクタは非表示にしたく、そうするとレコード件数も表示されなくなってしまうので、その変わりにフォームヘッターに表示をさせたいのです。 どなたかご存知の方がいらっしゃいましたらご教示いただきますようお願いいたします。

  • クロス集計クエリの合計 テキストボックスに表示

    クロス集計クエリの合計と、フォームのテキストボックスに表示させたいのですが無理でしょうか? クロス集計クエリの行見出しには会社名A社B社が入っていて、 合計 金額フィールドには各会社の合計金額が入っています。 そのクロス集計クエリを元にサブフォームを作り、 親フォームにはめ込んだのですが その親フォームにテキストボックスを設置し、 クロス集計クエリの合計 金額フィールドの合計を表示させたいのですが サブフォームのレコードをクリックするたびに、 親フォームにテキストボックスに表示される値は、そのアクティブなレコードの値になってしまいます。 テキストボックスのコントロールソースは =[テーブル1のクロス集計のサブフォーム].[Form]![合計 金額] としています。 A社B社のそれぞれのクロス集計クエリを作成し、 それぞれを足すしか、テキストボックスに合計を表示させる方法はないでしょうか?

  • ACCESS2000で複数のクエリをフォームに表示する方法を探していま

    ACCESS2000で複数のクエリをフォームに表示する方法を探しています。 フォームで入力された月毎に、いくつかの項目を条件指定し、合計を抽出し表示したいです。 最終的に表示したい内容は、 _____________________ フォームで指定された月のレコード一覧 _____________________ ・回数が1回のもの 地域名毎 合計回数 合計日数 合計金額 _____________________ 入院 合計回数 合計日数 合計金額 外来 合計回数 合計日数 合計金額 _____________________ ・回数が2回以上のもの 地域名毎 合計回数 合計日数 合計金額 入院 合計回数 合計日数 合計金額 外来 合計回数 合計日数 合計金額 _____________________ なんとか、 フォームで入力された月毎に再クエリし、そのクエリをフォームの詳細部分に表示するものは作成しました。 それに、そのクエリを基に地域毎に合計回数と合計日数と合計金額の集計をしたクエリ、入院と外来の合計回数と合計日数と合計金額を集計したクエリを回数が1回のものと回数が2回以上のものを作成しました。 全て同じフォームに表示することが出来ればよいのですが…。 ACCESSは一応1級を保持していますが、何年も前なので詳しいことは忘れています。プログラミングも一応はできるので、もしACCESSのVBAや他のやり方でも出来るならいい方法を教えていただけますでしょうか。お願いします。

  • Accessのクエリ機能について

    Accessで検索フォームを作成しております。実験記録シートにおいて、担当者ごとの実験のみを抽出する検索フォームを作成しています。「担当者選択」というコンボボックスを用意します。一方、クエリにおいて、「担当者」の抽出条件に、=[Forms]![実験記録シート検索フォーム]![担当者選択]としておけば、担当者選択で指定されたのみのレコードが問題なく抽出できます。 ここで、「担当者選択」を空欄にしておけば、すべてのレコードが表示できるようにしたいのですが、うまくできません。どなたかご存じの方がいらっしゃれば教えてください。 よろしくお願いします。

  • アクセス2000でクエリを組んだのですが。。。

    こんにちわ。アクセス初心者です。まず順に追って説明します。 (1)15000件ある顧客名簿と1500件ある担当会社のテーブルをリレーションで結び、クエリを組みました。「Q_顧客名簿」と名づけました。その時点で15000件データが存在します。 (2)フォーム「Q_顧客名簿」を元にフォームを作成しました。そして氏名の曖昧検索をしたいのでまずフォームのテキストボックスに「氏名検索」と名づけて、クエリの画面に戻り「Q_顧客名簿」を元に新たなクエリを組み、「氏名」のフィールドの抽出方法に以下のような文を入れました。 『Like "*" & [forms]![集合フォーム_1]![氏名検索] & "*"』 このクエリを「Q_氏名検索」と名づけました。 (3)フォームの左端をに「Q_氏名検索」が生きるよう設定をし、「氏名検索」のテキストボックスに「再クエリ」を組んだのですが、顧客データ数が15000あるはずなのが11000まで減ってしまいました。 おそらく検索式に何かが足りないのだと思うのですが、SQLやVBAがわからないのでどうすればいいかわかりません。 アクセスの詳しい方、教えていただけませんでしょうか?よろしくお願いいたします。

  • 合計を求めるクエリーについて

    1日から30日の間に誰が何のパンを何個売ったのかを調査できるようなデータベースを作ってみました。 クエリーの抽出条件はBetween「○○○」And「○○○」で日付で指定するようにしました。 (日付ですがデータ型はテキスト型です) 該当するレコードが30件あったとすると30件のレコードが抽出されますが、この期間内に誰が何のパンを何個売ったかの合計がわかるようにするにはどうすればいいのでしょうか? なんかうまく説明できなくてすみませんが教えてください。 よろしくお願いいたします。

  • アクセスのクエリについて教えてください。

    アクセス超初心者です。 長文の質問になってしまって、申し訳ありません。 SQLは全く使えず、クエリだけの処理にしています。 どうやって質問してよいのか分からないので、マニュアルやインターネットで、さんざんヒントを探しているのですが、途方にくれ、勇気をもって質問することにしました。 是非、教えて頂けないでしょうか。 ――履歴テーブル―― [顧客No] [利用日] 0001   99/12/31 0001   00/01/01  0002   02/01/01 ――クラステーブル―― [クラス][金額] A \1,000 B   \800 ――契約履歴テーブル―― [契約No][顧客No] [契約(始)] [契約(至)][クラス] 1  0001    99/01/01   99/12/31 A 2  0001    00/01/01   00/12/31 B 3  0002    99/01/01   99/12/31   A 4 0002    00/01/01   00/12/31   B **履歴クエリ** [顧客No] [利用日] [クラス] [金額]  0001   99/12/31 A \1,000  0001   00/01/01 B \800  0002   02/01/01   A   \1,000  0002   02/01/01 B \800  ↑0002は1回しか利用していないのに上と同じ利用日が出てきてしまう。なので合計するときに不都合がでてきてしまう。 ??したいこと?? 1.履歴クエリに契約範囲内にあったクラスを表示し、金額を合計したい。 2.契約範囲内にないものについては[クラス]に”契約日未入力”と表示して、金額を表示しないようにしたい。 以上、2点なのですが、「利用日のクラスに合った金額を合計する」、という方法であれば、他の方法でもご存知なら教えてください。 よろしくお願いします。

  • アクセスのフォームでデータ元をテーブルからクエリにかえたい

    上手く表現できるかどうかわからないのですが、頑張って書きます。少々長いです。 アクセスでフォームを使ってデータ入力しています。これは単純で、あるテーブルへのデータ入力をフォームを使ってやるだけのことです。このテーブルの中に「都道府県」というフィールドがあります。ある事情からこのフォームを使ってデータ入力(または修正)をするレコードは、「都道府県」のフィールドが「福岡県」のものだけでよくなりました。 そこで、「都道府県」に「福岡県」を持っているレコードだけを取り出すクエリを作ります。このクエリを元にして、同じフォームでデータ入力したいのです。入力項目は全く同じです。「福岡県」をもっているレコードだけが全く同じフォームで表示されるようにしたいのです。 もとのテーブル名を「全データ」とし、クエリを「福岡県抽出クエリ」と呼ぶとすると、どこかで「全データ」を「福岡県抽出クエリ」に書き換えればすべてのテキストボックスのデータ元が入れ替わってくれると思うのですが、それでいいのでしょうか。その場合、どうやったらいいのでしょう。 なぜ一からファームを作り直さないかというと、テキストボックスの大きさや配置を決めるのに膨大な労力を費やしていて、全部をやり直したくないからです。 どうかお願いします。ご指導ください。

  • ACCESS クエリの抽出条件

    毎度お世話になります。 クエリをレコードソースとするフォームから、コマンドボタンでアクションクエリを実行するときの抽出条件の書き方を教えて頂けないでしょうか? 二つのテーブル(別のACCESSファイルからリンク)を基にパラメータクエリを作っています。 そのクエリを基にフォームを作っています。 さらに、そのフォームに追加クエリを実行するボタンを置いています。 フォームに表示してあるレコードだけ(パラメータで抽出されたレコードだけ)、他のテーブルに追加しようと思っているのですが、実行ボタンを押すともう一度パラメータが出てきてしまいます。 多分テキストボックスの値を読み取る際にレコードソースがテーブルでないのが問題じゃないかと思うのですが。。。 テーブル:Container / Items クエリ:From_Con(パラメータは[Container]フィールド) フォーム:From_Con(テキストボックス名は[txtContainer]) 追加クエリ:From_Con_App(抽出条件は[Forms]![From_Con]![txtContainer]としてみたがうまく動きません。) デザインビューの抽出条件を使う方法? SQLを使う方法? QueryDefを使う方法? いろいろありそうですが、ネットで検索してもヒットしません。 分かりにくい説明で申し訳ありませんがご教授願います。

専門家に質問してみよう