[AC2k]レポートの詳細が逆に。。。

このQ&Aのポイント
  • [AC2k]レポートの詳細が逆になる問題についての解決方法を教えてください。
  • Access2000のレポートにおいて、クエリー通りではなく、商品コード順に表示される問題が発生しています。
  • フォームとテーブルの関係性やクエリーの結果については問題ありませんが、詳細セクションが予期しない表示順序になっています。解決方法を教えてください。
回答を見る
  • ベストアンサー

[AC2k]レポートの詳細が逆に。。。

Access2000のレポートについて、教えてください。 ---- フォーム:F_売上伝票,F_売上伝票明細 (伝票番号をキーにしてサブフォームにしています。) テーブル:T_売上伝票,T_売上伝票明細 クエリー:Q_売上伝票出力 レポート:R_売上伝票出力 ---- [F_売上伝票](F_売上伝票明細)で入力したデータは、 [T_売上伝票] 伝票番号| 売上日付 |顧客コード|・・・ ----+-----+-----+---   1001|2001/07/16|T20111  |・・・ [T_売上伝票明細] 伝票番号|商品コード|・・・ ----+-----+---   1001|1021   |・・・   1001|5545 |・・・   1001|3222 |・・・    1001|4665   |・・・  レポートのソースであるクエリーの結果は [Q_売上伝票出力] 伝票番号| 売上日付 |顧客コード|商品コード ----+-----+-----+-----   1001|2001/07/16|T2001 |   1021   1001|2001/07/16|T2001 |   5545   1001|2001/07/16|T2001 |   3222   1001|2001/07/16|T2001 |   4665 と素直に出てくれるのですが、 レポートの結果(詳細セクション)は 商品コード ----- 4665 3222 5545 1021 となってしまいます。 クエリーでソートしている訳でもありません。 お客様のご都合で、 ・商品コード順にソートする というクエリーは不可です。 レポートが、クエリー通りに出てくれる方法は 無いでしょうか? レポートを作り直したら出来るかもしれませんが、 原因を掴みたいので、ご教授願います。 よろしくお願い致します。 #プロポーショナルフォントは面倒です(;_;)

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

>うーん、残念ながら並び替えるキーとなる項目がありません。 Accessに限らずデータベースにおいては、データの順序に「入力した順」って概念はありません。明示的に指定しない限り、並び順は一切保証されないんです。 現在のところ、クエリにおいては入力順が保たれているようですが、Accessの仕様変更とかによってそのうち順序が保証されなくなるかもしれませんし、データを消したり書き換えたりしているうちに、入力順に並ばなくなるかもしれません。 レポートでクエリのとおりに並ばないっていうのは、まさにこの仕様が露呈してしまったからです。 ですから、今のうちに[T_売上伝票明細]に、オートナンバー型の[ID]フィールドを付けておいたほうが良いと思いますよ。これがあったら、いつ如何なるときでも入力した順序が分かるようになるんで。 あるいは手動で並び方を変更したいって要望がある場合には、[並び順]なるフィールドを作って、そこにVBAで並び順を格納するって方法もよく使われます。

sphere
質問者

お礼

確かにオートナンバーを使えば順番になりますね^^ すばらしいご回答ありがとうございます。 またよろしくお願い致します。

その他の回答 (1)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

レポートの並び順は、「レコードソース」の値よりも、「並び替え/グループ化」の方が優先します。 レポートをデザインビューで開いて、[表示]-[並べ替え/グループ化]を実行して、そこで並び替え項目を指定してみたらどうでしょうか。

sphere
質問者

補足

早速のご回答有難うございます。 うーん、残念ながら並び替えるキーとなる 項目がありません。 今の所出来るか確信は無いのですが、 クエリー上で行番号を付けてそれをキーにして ソートしてみます。

関連するQ&A

  • 伝票リスト中に商品名

    いつもお世話になります。 過去ログを探してみたのですが探し方が悪かったのか見つかりませんでしたので、書き込みさせていただきました。 売上伝票のリスト中に商品名(明細一行目)を入れたいので す。 テーブルとしましては、 [T_売上伝票] 伝票番号,顧客コード.... [T_売上伝票明細] 伝票番号,行番号,商品コード,商品名..... このままクエリーをかけると、 001 000001 商品A ........ 001 000002 商品B ........ 002 000002 商品B ........ となりました。 希望は、 001 000001 商品A ........ 002 000002 商品B ........ となる事です。 何かよい方法があれば教えてくださいませ。 よろしくお願い致します。

  • SQL文を教えて下さい

    VB2008、SQL Server で開発をしています。 下記の条件でデータを取得したいのですが、SQL文がうまくできず、困っています。 おわかりの方、教えてください。 仕様:得意先マスタ(得意先M)の全件と、売上テーブル(売上T)を読みます。     売上テーブルの商品コードの商品名を商品マスタ(商品M)より取得します。     得意先マスタの全得意先を取得する必要があります。     すべての得意先の売上データが存在するわけではありません。 ACCESS上でクエリを作成し、SQLビューにすると、こうなります。 inptSyoCD:画面から入力した商品コード 1,まず、クエリ1: SELECT 売上T.伝票日付, 売上T.伝票番号, 売上T.得意先コード, 売上T.明細区分, 売上T.商品コード, 商品M.商品名称 FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 WHERE 売上T.明細区分=1 AND 売上T.商品コード= inptSyoCD ; 2,次に、実際に処理するSQL文: SELECT 得意先M.得意先コード, 得意先M.得意先名称,       クエリ1.伝票日付, クエリ1.伝票番号, クエリ1.明細区分, クエリ1.商品コード, クエリ1.商品名  FROM 得意先M LEFT JOIN クエリ1 ON 得意先M.得意先コード = クエリ1.得意先コード ORDER BY 得意先M.得意先コード,売上T.伝票日付,売上T.商品コード; この2つをひとつのSQL文にする方法がわかりません。 よろしくお願いいたします。

  • access で計算結果を表に代入する方法

    3つのテーブルがあります。T商品(商品コード、商品名、単価)、T明細(伝票番号、商品コード、数量)、T伝票(伝票番号、昨年度合計) Q売上でT商品、T明細から売上が計算できます。 Q伝票合計 でQ売上から伝票番号ごとに合計が計算できます。 ここで、 Q伝票合計の結果をT伝票に代入して昨年合計との差を算出することができれば、方法を教えてください。 T商品(商品コード、商品名、単価) 001 バット 10000 002 ボール 1000 003 ベース 4000 T明細(伝票番号、商品コード、数量) D0801 001 4 D0802 002 10 D0801 002 20 D0801 001 20 T伝票(伝票番号、昨年度合計) D0801 100000 D0802 300000 D0803 400000

  • Accessレポート 複数条件での集計

    どなたかお知恵をお貸しください。 テーブル名:T_当社 フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト) テーブル名:T_取引先 フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値) クエリ名:Q_商品一致 元テーブル:[T_当社]、[T_取引先] フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト) 抽出条件:[当社]テーブルの[商品管理番号]と[取引先]テーブルの[商品管理番号]が一致するものだけ データベース構成は以上の通りです。下記のようなレポートを作成したいのです。 条件1:[入庫日]を月単位でグループ化し、[数量][金額]を集計する。----- レポート上の表示項目名[数量][金額] 条件2:[伝票番号]の値が[3U]で始まるものと、[3N]で始まるものは、 条件1の[数量]と[金額]から差し引いて、別列に表示させる。 ※3U、3Nのデータに関しては、[0]が表示されず、空白でもOK。 自分でしたのは、下記の通りです。 1.Q_商品一致クエリで、[伝票番号]が、3Uと3Nで始まるレコードを除外。 2.Q_商品一致クエリを元に、[伝票番号]が、3Uで始まるレコードだけを抽出するクエリ[Q_3U]を作成。 3.Q_商品一致クエリを元に、[伝票番号]が、3Nで始まるレコードだけを抽出するクエリ[Q_3N]を作成。 4.Q_商品一致クエリを元に、[入庫日]でグループ化したクエリ[Q_商品一致(月別)]を作成。  Q_3U、Q_3Nも同様に、[入庫日]でグループ化したくエリを作成。 (4)で作成した3つのクエリを、1つの選択クエリにしてみたのですが、これだと、例えば、 4月度にしか[3N]データがない場合でも、5月度以降の行にも、4月度の[3N]データの値が繰り返し表示されてしまいます。

  • Accessで複数テーブルのJoin

    次のようなテーブル(T1~T4)とクエリ(Q1~Q2)があります。 クエリの表で囲っているものはAccessのQBEを表しています。 その下はAccessが自動生成したSQLです。 Accessがある場合はいいのですが、ない場合、いきなりSQLを 書かないといけないわけですが、どのような順番に並べていって いいのか整理がつきません。 4つ以上になるとさっぱりです。 何かヒントをいただけませんでしょうか? T1:売上表[売上No、日付、顧客CD] T2:顧客表[顧客CD、顧客名] T3:売上明細[ID、売上No、連番、商品CD、数量] T4:商品表[商品CD、商品名、単価] Q1: ┌────────────────┐ │日付 │ 商品名│単価 │数量 │ ├────────────────│ │売上表│商品表│商品表│売上明細│ └────────────────┘ SELECT 売上表.日付, 商品表.商品名, 商品表.単価, 売上明細.数量 FROM 商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD; Q2: ┌────────────────────┐ │日付 │ 顧客名│商品名│単価 │数量 │ ├────────────────────│ │売上表│顧客表│商品表│商品表│売上明細│ └────────────────────┘ SELECT 売上表.日付, 顧客表.顧客名, 商品表.商品名, 商品表.単価, 売上明細.数量 FROM (商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD) INNER JOIN 顧客表 ON 売上表.顧客CD = 顧客表.顧客CD;

  • クエリでの昇順順位がレポートに反映されません

    宜しくお願いします。 日付、店舗コード、店舗名、商品名が入ったデータを、レポート(R_レポート)で出力させるためにクエリ(Q_レポート)を作成しました。 昇順の優先順位を上に表記した順にしたいため、 一番左から、日付、店舗コード、店舗名、商品名の順に並ばせ、 "昇順"に設定しました。 ですが、実際レポートを出力すると、内容はあってるのですが、日付順になりません。 でも、元のクエリで確認すると、ちゃんと日付順になっているのです。 これはなにが原因と考えられるのでしょうか。 日付順にする方法はありますでしょうか。。。 宜しくお願い致します。

  • 桐Ver9の主キーの設定

    桐Ver9をWindowsXPで使ってます。 表定義で主キーを複数設定することってできないのでしょうか? 簡単に言うと、 伝票表(伝票番号,顧客ID,売上日)      ~~~~~~~~ 明細表(伝票番号,商品コード,数量)      ~~~~~~~~  ~~~~~~~~~ といったときの、明細表の[伝票番号]と[商品コード]なのですが。

  • Accessのフォームでの合計欄を二つにわけたい

    テーブル1;売上明細T フィールド名;売上明細番号、商品コード、数量、摘要 テーブル2;商品T フィールド名;商品コード、商品名、単価 クエリで売上明細と商品Tをつなぎ、下記のように表示します。 商品コード 商品名 摘要  数量  単価 明細計                  (数量*販売単価) 001    物件1  作業代  1  500 500 002    物件2  作業代  2  400 800 051    物件51  作業代  1  500 500 051    物件51  交通費  1  350 350  上記クエリを元にフォームを作成(帳票形式)して、 テキストボックスで課税対象計(作業代計)と、非課税対象計(交通費計) のボックスをもちたいのですが可能でしょうか? 最終的には、売上伝票フォームに売上明細フォームをサブフォームで 取り込み、売上伝票上で合計金額を表示させたいと思っています。 よろしくお願いします。

  • access2003

    2000種ほどの商品を扱っています。商品コードひとつにつき、仕入先・取引先が1箇所ずつ決まっていて、値段の変化もあまりありません。伝票を見ながら、フォームから直接売上入力を行い、請求処理と売上分析に利用したく思います。 ◆親)売上入力フォーム:売上管理番号/日付/取引先/取引先伝票番号/売上合計金額 ◆子)売上明細フォーム:商品コード/商品名/単価/数量/明細金額 ◆売上入力テーブル:売上管理番号/取引先/日付/取引先伝票番号 ◆売上明細テーブル:明細番号/売上管理番号/商品コード/数量/明細単価 入力の効率化を図るため、1部品1取引先であることを利用して、親フォームで取引先を選択することで商品を絞り込み、子フォームの商品選択コンボボックスにはその取引先の商品だけが表示させるようにしたいと思います。どのような方法が考えれるでしょうか? クエリを使うのだと思いますが、いろいろ試しても失敗してしまいます。 また、その上でさらなる絞込みとして、明細の各行で各商品を選択する際に、商品コードの一部を入れたり、仕入先名を入れると部品が絞り込めるようにできないでしょうか? アドバイス、参考資料、なんでもお寄せください! どうぞよろしくお願いいたします。

  • [Excel ADO]条件にマッチした伝票の出力

    Excel2007 ADOを使ってCSVのSQL処理をしています 対象は売上伝票で、取引先名、商品名などで検索をかけるのですが その結果がマッチした明細のみしか取り出せないのをなんとかしたいです 例えば、1つの伝票には複数明細が含まれるのが通常ですが、 商品名で検索すると、その商品の明細しか出てきません これを、マッチした明細を含む伝票全体を取り出したいのです SELECT 伝票日付,伝票番号 FROM T_売上 WHERE 取引先="A社’ AND 商品名='鉛筆' GROUP BY 伝票日付,伝票番号 こんな形で検索対象を含む伝票の伝票番号リストを得ることはできたので、 次はこの日付と番号でWHEREをかけるのか あるいはEXSISTSなどを使うのか ちょっと具体的にイメージできません 教えていただけるとありがたいです よろしくお願いします