- 締切済み
Accessレポートでの前回レコード参照に関して
Accessレポートでの前回レコード参照に関して いつもお世話になっております。 Access2007を使用しています。 クエリーで集計したデータをレポートに、顧客ID毎に今回/前回の[結果]データだけを横に表示させて1枚の表にしたいと思っています。 クエリーは、[日付]、[顧客ID]、[結果1]、[結果2]、[結果3]・・・で、[日付]データは、8桁の数値になっています。 いろいろとサイトを見て、Dlookupなどで、挑戦してみたのですが、うまくいかず、皆さんのお知恵をお借りできればと思います。 宜しくお願いします。
- rain_kouji
- お礼率56% (21/37)
- その他(データベース)
- 回答数3
- ありがとう数19
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
簡潔にまとめていただいてありがとうございます。 いただいた情報の範囲内での回答になりますが、ご容赦を。 (1) レポートの詳細に二つのサブレポートを配置する方法。 (2) レポートウィザードで作る方法。 (3) コードを書きまくる方法 のような方法があるとは思いますが、 思考減退に伴い厳密な方法が思い浮かばないというか、 この場で説明しきる自信がないので、 (2)の方法を取り上げてみます。以下手順。 (1) 集計のクエリをQ集計とします。このクエリを もとにユニオンクエリを作ります。フィールドは適時変更、 追加してください。 SELECT Q集計.顧客ID, Q集計.日付, Q集計.結果1, Q集計.結果2, Q集計.結果3 FROM Q集計 WHERE (((Q集計.日付)=[前回集計日付])); UNION SELECT Q集計.顧客ID, Q集計.日付, Q集計.結果1, Q集計.結果2, Q集計.結果3 FROM Q集計 WHERE (((Q集計.日付)=[今回集計日付])); 適当な名前で保存します。 (2) レポートの新規作成を選択。基になるテーブルまたはクエリの 選択で保存したクエリを選択し、レポートウィザードを選択し、OKとします。 (3) 選択可能なフィールドで全て選択し、次へ行きます。 (4) グループレベルで顧客IDを選択し、次へ行きます。 (5) あとはそのまま次へを選んでレポート名を適当に設定し、 レポートのデザインを編集するを選択し、完了を選択。 (6) デザインビューが表示されたら詳細の部分でマウスを 右クリックし、並べ替え/グループ化を選択。フィールドの 空いている所の右をクリックし、日付を選択。 選択した行の右側の並べ替え順序をクリックし、 昇順を選択してレポートを保存します。 以上で終了です。 レポートをダブルクリックするとパラメータの 入力が表示され、まず前回集計日付、続いて 今回集計日付が表示されるので、それぞれの日付を 入力します。入力が済むとレポートが表示され、 IDごとに上が前回、下が今回というように表示されます。 これは一つの方法です。DLookupで何を参照しよう としたのかはわかりませんが、これを参考に何か あれば質問してください。
- piroin654
- ベストアンサー率75% (692/917)
少し追加質問。 (1) クエリのSQL文があれば見当はつくのですが、 あえて、[結果]はテーブルに既に存在するデータ ですか、あるいはクエリで集計して出した データですか。 (2) レポートでデータを表示するところは メインレポートのみですか、あるいは サブレポートですか。 データを表示するレポートの構造が どのようになっているのか、情報提供を。 (3) 日付の役割は。
- piroin654
- ベストアンサー率75% (692/917)
誰が回答するにしろ、いずれ尋ねたいこと。 (1) クエリのSQL文と、クエリが参照するテーブルの 構造。 (2) レポートを表示するときにフォームを利用しているか。 そのフォームにクエリに渡すデータが存在するか。 あればレポートを開くときのコード。 (3) レポートのレコードソース。 あれば、レポートのコード。 宝探しは大好きなのですが、スペースが限られている 中では最低限、回答に必要な情報は提供してください。
補足
(1)は、クエリのSQL文をそのまま出すわけにいかないので・・・、クエリは、テーブルを集計している、別の2つのクエリを参照しています。 (2)レポートを表示するときにフォームは利用していません。 (3)レポートのレコードソースはクエリをそのままです。 すいません。勉強不足で、回答しきれていない部分があると思います。
関連するQ&A
- アクセスのレポートについて
アクセスのレポートについて、 結果の報告書を作成したいのですが、CSVデータには、 顧客名、顧客の部、顧客の課と結果が表示されています。 報告書を顧客の課別に報告するのですが、今までの報告書形式にあわすために困ってます。 既存の報告書の結果が、縦二列にデータが並んで表示されていました。 例 レコード1 レコード5 レコード2 レコード6 レコード3 レコード7 レコード4 レコード8 レポートデザインで、どのように設定したらよいか教えてください。 報告書の提出先として、結果を顧客データを所属する課別に レポートを別にしたいのですが、 レポートウィザードのヘッダーのグループ化を二重に設定する事は可能でしょうか? よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- アクセスのレポートでレコード数をカウントしたい
お世話になります。 アクセスで、クエリで抽出した結果のレコード数をカウントし、レポートに出力させたいのですが、うまくいきません。 各クエリのレコード数が、レポートを見て分かればいいのですが、 出来ればXXXX/総レコード数XXXXという形で出力できれば尚嬉しいです。 宜しくお願いします。
- ベストアンサー
- その他(データベース)
- Access2000 / 「レコードを追加できません」
こんにちは Access2000で困っております。 簡単にいいますと、フォーム上から日付/時刻型のデータを入力しようとしても 「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されうまく入りません。 テーブルの構成ですが、 ★が主キー (1)T現場台帳 ★NO(オートナンバー型) 現場記号(テキスト型) ・ ・ 省略 (2)T外部集計警備 ★NO(オートナンバー型) 現場記号(テキスト型) 警備依頼日付(日付/時刻型) 警備会社ID(数値型) 集計人数(数値型) (3)T警備会社 ★警備会社ID 警備会社名(テキスト型) ・ ・ 省略 上記テーブルはリレーションがかかっており、 (1)T現場台帳.現場記号(テキスト型)----(2)T外部集計警備.現場記号(テキスト型) (2)T外部集計警備.警備会社ID(数値型)---(3)T警備会社.★警備会社ID それぞれ、参照整合性のついたリレーションです。 更にこれらをまとめるために、Q警備会社集計クエリ(選択クエリ)をつくりフォームに利用しています。 Q警備会社集計クエリの構成 T現場台帳.担当者ID T外部集計警備.警備依頼日付 T外部集計経緯日.警備会社ID T警備会社.警備会社名 T外部集計警備.集計人数 (並べ替えや絞込みは、なし) この「Q警備会社集計クエリ」を使って フォームからウイザードを使用してフォームを作成し、警備依頼日付を入力しようとすると「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されます。 どなたか、Accessの痒いところまで手の届く方、お助けください。
- ベストアンサー
- その他(データベース)
- Access クエリ このレコードセットは・・・
いつもお世話になります。 Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。 ■テーブル1 ・顧客ID(主キー) ・顧客名 ・住所 ・TEL ■テーブル2 ・顧客ID ・取引ID(主キー) ・請求金額 ■クエリ1(集計クエリ) ・顧客ID グループ ・請求金額合計: Sum(請求金額) 合計 ■クエリ2(実際に使用するクエリ) ・顧客ID(テーブル1) ・顧客名(テーブル1) ・住所(テーブル1) ・TEL(テーブル1) ・請求金額合計(クエリ1) このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。 ・請求金額合計(クエリ1)を除けば問題なく更新できます。 ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。 どなかた良い方法をご教授下さいませ。
- ベストアンサー
- その他(データベース)
- Access2002で任意のレコードのみをレポートで印刷したい
http://oshiete1.goo.ne.jp/qa5272888.html の続きです。 テーブルは下記のとおりです。(計4つ) 1.顧客テーブル(データ投入済み) ・顧客ID(テキスト) ・顧客名(テキスト) ・フリガナ(テキスト) 2.納品書テーブル(データはフォームから自動生成) ・納品書ID(オートナンバー) ・納品日付(日付) ・顧客ID(テキスト) 3.注文テーブル(データ投入済み) ・注文ID(テキスト) ・顧客ID(テキスト) ・納品書ID(テキスト) ・数量(数値) ・摘要(テキスト) ・選択(Yes/No) 4.商品マスター(データ投入済み) ・商品ID(テキスト) ・商品名(テキスト) ・単価(数値) 以上の4つのテーブルでテストDBを作っています。 上述したとおり、フォームで、 1.新規レコードの作製 2.納品日付入力 3.コンボボックス(従業員名、カナ)をコンボボックスで選択 という手順を踏み、納品書番号が自動的に振られるフォームまで作成できました。 これを元に、レポートとして、 ・顧客を選択 ・納品書番号を選択 して、選択したレコードをレポートに表示したい、という質問です。 前の質問で、下記ご回答を得ております。 --------------------------------------------------------------- 1.納品書の一覧 以前作成した「納品書番号」のレコードソースを SELECT 納品書テーブル.納品書ID, 納品書テーブル.納品日付, 納品書テーブル.顧客ID FROM 納品書テーブル ORDER BY 納品書テーブル.納品書ID DESC; に変更して、新しいものが先に見えるようにします 2.フォームのプロパティで「データ」の「追加の許可」を「いいえ」にします。 3.ウィザードが起動したら「フォームの操作」「フォームを開く」と進み、「納品書番号(選択)」を開くようにします。これでいつでも新規納品書を作成できます 4.「納品書番号」フォームのイベントで「アクティブ時」を「[イベント プロシージャ]」にし編集ボタン(…)を押して、以下のようにします Private Sub Form_Activate() Me.Requery End Sub これで新規納品書作成後に「納品書番号(選択)」を閉じると、最新の納品書が表示されます 5.レポート「納品書」の作成 レコードソースは SELECT 納品書テーブル.納品書ID, 納品書テーブル.納品日付, 従業員マスタ.従業員名 FROM 従業員マスタ INNER JOIN 納品書テーブル ON 従業員マスタ.従業員ID = 納品書テーブル.顧客ID WHERE (((納品書テーブル.納品書ID)=[Forms]![納品書番号]![納品書ID])); 6.レポートにフィールドリストから「納品書ID」「従業員名」などを貼り付けます 7.「納品書番号」をデザインモードで開き、ボタンを追加し「納品書」レポートをプレビューで開くようにします。これで任意の納品書が印刷できるようになります 8.実際のレポートは納品書番号に対応するアイテムが並ぶ必要がありますが、これはレコードソース(クエリ)を拡張することでもできるし、親子レポートにすることでも可能です。色々試してください --------------------------------------------------------------- fuuten_no_nekoさん、ありがとうございました。 これまでは「フォーム」に関する質問で、今回は「レポート」に関するものに進んできましたので、新規の質問にしたほうがよいとのアドバイスを受け、この質問を立ち上げます。 なお、「今ここまでできている」という部分は、補足に記述します。 どうぞよろしくお願いします。
- ベストアンサー
- その他(データベース)
- ACCESSで複数あるコードを分類して1レコードで集計したい
いつもお世話になっています。 ACCESS初心者です。ACCESS2000を使用しています。 下記のような表をACCESSで、集計したいと思っています。 顧客ID 商品コード 商品購入日 1 123 20050223 1 124 20050403 2 123 20050302 3 124 20041223 3 133 20050131 これを、1顧客1レコードとして集計したいのです。 それぞれの商品フィールドをつくり、各購入数と そのうち一番最近購入した商品コードと、日付を 顧客別に一覧表示したいのです。 顧客ID 商品123+124 数 123+124購入日 商品133 数 133購入日 1 124 2 20050403 2 123 1 20050302 3 124 1 20041223 133 1 20050131 ↑こんな感じです。 これを最終的には、csvで書き出したいと思っています。 色々試してみましたが、思ったような結果がでません。 ご教授よろしくお願いいたしますm(__)m
- ベストアンサー
- オフィス系ソフト
- Access レポートのレコードソースについて
Access レポートのレコードソースについて Access2000を使っています。 VBAでテーブル一覧や構造を Debug.Print に出力する方法が、あるWebサイトで紹介されて いたのですが、Debug.Print ではなく、レポートに出力することは可能でしょうか・・? 一般的には、レポートのレコードソースには、クエリやテーブルを使うと思いますが・・・。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ACCESSで集計カウント0件の場合1と入力される
再度質問箱に投稿します!Access2000で顧客管理をしているのですが毎日入力している顧客データーの顧客カルテNOからクエリの集計クエリで 一日の人数をカウントしているのですが、来店客が0人の時は0と入力しても1とカウントしてしまいます これを0人とカウントしないと集計結果が間違えてしまいます、どの様にすれば来店客が0人の時集計クエリで0とされるでしょうか? こんな感じです 顧客来店テーブル No カルテNO 日付 名前 etc.....でカルテNOはテキスト型で日付は日付/時刻型です 顧客来店テーブルから顧客来店日の日付別売上集計クエリに日付とカルテNOのフィールドを作って 日付をグループ化してカルテNOをカウントしています 顧客来店日の日付別売上集計クエリ 日付 カルテNO グループ化 カウント 顧客来店テーブルのカルテNOを0と入力すると 顧客来店日の日付別売上集計クエリのカルテNOのカウントで集計結果が0ではなく1と返されるのです、 前回お回答をしてもらった方法で 集計 Where条件 抽出条件 <>"0"にすると日付が無くなってしまいます これですと月の集計をした時に営業日数などが間違ってしまいます、 どの様にすればいいか解らないです、宜しくお願いします
- ベストアンサー
- 財務・会計・経理
- Accessレポートの質問です。
Access2010のレポートで複数レコードのデータを1行に出力しようとしています。 具体的には各レコードに顧客名と金額がはいっており、 それを以下のように印刷したいと考えてます。 顧客1 10,000 顧客2 20,000 顧客3 30,000 顧客4 40,000 顧客5 50,000 合計 5件 150,000 VBAを使って処理すれば、できるのかもしれませんが、VBAでレポートを作成した ことがないので止まっています。(フォーム内でのデータ処理でVBAを使ったこと はありますが) どなたか知恵をお貸しいただければ幸いです。 宜しくお願いいます。
- ベストアンサー
- オフィス系ソフト
- MS ACCESS 2003 サブレポート機能でメインレコードと関係の
MS ACCESS 2003 サブレポート機能でメインレコードと関係のないレコードも表示される どなたかアクセスに詳しい方、教えて頂けませんでしょうか。 MS ACCESS 2003 にて、帳票印刷システムを構築しております。 ・請求ヘッダテーブル・・・顧客ID、顧客会社名、顧客氏名、住所 等 ・請求明細テーブル・・・顧客ID、請求明細名、単価、数量、小計 等 となっております。 こちらの状態で、顧客ID別(1人ずつ)に、紙面の上部に請求ヘッダテーブルの情報を羅列し、 紙面の下部に表形式で請求明細テーブルを表示するような形式の「レポート」を作成したいと考えております。 そこで、メインレポート/サブレポート機能を使って、上記を実現したいと思い、以下のような手順でトライしているのですが、サブレポート部分(デザインビューで見た場合の「詳細」部分)に、でメインレポート部分の顧客IDの請求明細データではないレコード(違う顧客IDの請求明細)まで表示されてしまいます。 ■リレーションを作成 ・メニュー「ツール」⇒「リレーションシップ」にて、請求ヘッダ-請求明細をひもづけ。 ・参照整合性にチェック。 ・結合の種類は「請求明細の全レコードと請求ヘッダの同じ結合フィールドのレコードだけを含める」。 ■レポートを作成 ・レポート⇒新規作成⇒レポートウィザードでレポートを作成。請求ヘッダのみの情報で作成。 ・デザインビューの詳細部分にて、サブレポートを呼び出し。請求明細テーブルを選択し、顧客ID、請求明細名、単価、数量、小計 等を選択。 上記のようにすると、顧客IDとは関連なく(正しい詳細データもそうでないデータも合わせて)10件の請求明細データが表示されます。 また顧客ID=1の場合も、次のページの顧客ID=2の場合もすべて同じ10件の明細データが現れます。 インプレスのアクセス本を参照しながら作業しているのですが、詳しくない分非常に苦労しております。 どなたか、なにとぞよろしくお願いいたします。
- 締切済み
- その他(データベース)
補足
(1)クエリで集計したデータです。 (2)メインレポートのみです。 (3)いつの結果かを区別しています。他システムから吐き出されたCSVをインポートして使っています。