- ベストアンサー
Accessのフォームで小計や集計ができないのか?
- Accessのフォームでは、グループごとに小計を出したり、フッター・ヘッダーを付けたりすることはできないのでしょうか?
- 例えば、販売データの商品分類にランクをつけて、ランク別に出荷数量と売上金額の集計をフォームで行いたい場合、小計の表示方法やレイアウトの調整はどうすれば良いのでしょうか?
- Accessのレポートではプレビューが不便であり、大量のデータを扱う必要がない場合にはフォームでの集計が便利です。良い方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Q、Access のフォームで小計とかできませんか? A、多分、不可能です。が、クエリかレコードソースをSQLで書けば・・・。 次は、擬似的に小計欄を発生させる一つのやり方です。 <goods> ID___Goods___ Kubun___Sales 1____abc_______A________\1,000 2____def_______B________\2,000 3____ghi________C________\3,000 4____jkl_________A________\1,200 [イミディエイト] ? DBSelect("SELECT ID, Goods, Kubun, Sales FROM Goods ORDER BY Kubun, goods") 1;abc;A;1000; 4;klm;A;1200; 2;def;B;2000; 3;hig;C;3000; ? DBSelect("SELECT 0 AS ID, '小計' As Goods, Kubun, SUM(Sales) FROM Goods group by Kubun") 0;小計;A;2200; 0;小計;B;2000; 0;小計;C;3000; まずは、このような2つの Select文を作成します。 要は、この2つの結果が単一のセットであれば良い訳です。 ならば、UNION キーワードで連結するのみ。 <クエリ1> SELECT ID, Goods, Kubun, Sales FROM Goods ORDER BY Kubun, goods UNION SELECT 0 AS ID, '小計' As Goods, Kubun, SUM(Sales) FROM Goods group by Kubun ORDER BY Kubun, goods; 《クエリ1>の実行結果》 ID___Goods___Kubun___Sales 1____abc_______A_________\1,000 4____klm_______A_________\1,200 0____小計_____A_________\2,200 2____def_______B_________\2,000 0____小計_____B_________\2,000 3____hig________C________\3,000 0____小計______C________\3,000 これで、質問者の企てが半ば(?)実現できたんじゃないでしょうか・・・。
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
>AランクとBランクの間に1行分だけ行間を開けるとか・・・ このような考え方はデータベースのものではありません テーブルやクエリのようなレコードセットでは フィールドには同じ種類の値だけを格納するというのが大原則です 小計のような意味の異なる数字を入れてはいけません フォームでランクごとの小計を求めたければ ランクテーブルを作り、ランクテーブルから作った単票フォームに 販売データをサブフォームとしてランクでリンクしてはめ込み サブフォームのフッターで小計を求めるというようなことになるでしょう