• ベストアンサー

Accessの抽出に関して

レポートの中にサブレポートを作成し印刷をしています。その際、レポート上でNOを指定していますので、サブレポートにはNOと一致するデータのみが印刷されます。 サブレポートのレコードソースはQ_印刷(クエリでNOの昇順にしたもの)になります。 そこで、1枚に収まる件数というのは限られてきますので、例えば10件データがあった場合、クエリで昇順に並べ替えた上位5件のみをサブレポートで印刷するといった事は可能でしょうか??VBA等を使用した方法でも何でも結構ですので、効率の良い方法があれば教えて頂きたいと思います。よろしくお願い致します。M(__)M

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

  • ベストアンサー
  • -boya-
  • ベストアンサー率35% (176/494)
回答No.2

クエリをSQLビューにしてからSELECTの後に TOP 5 と入れると上位5番目までが表示されます。

simple-t
質問者

お礼

レポートを開く時のモジュールにSQLで個人IDとTOP5を指定したらうまくいきました。ややこしく考え過ぎていたようです。 ありがとうございましたM(_ _)M

simple-t
質問者

補足

ご回答ありがとうございます。M(__)M No1のかたの補足でまとめて入力をさせて頂きましたので、もしそちらの内容でまた良い方法があれば教えてください。お願い致します。

その他の回答 (1)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

> レコードソースはQ_印刷(クエリでNOの昇順にしたもの)になります。 このクエリで、TOP値プロパティを使ってみてください。

simple-t
質問者

お礼

レポートを開く時のモジュールにSQLで個人IDとTOP5を指定したらうまくいきました。ややこしく考え過ぎていたようです。 ありがとうございましたM(_ _)M

simple-t
質問者

補足

ご回答ありがとうございます。M(__)M すいません。質問の仕方が足りなかったので補足させて頂きます。実はNOとは別に個人IDがあるとします。今回教えて頂いた方法でNOの上位5件を抽出することが出来たのですが、サブレポートがIDでリンクされていますので全く無関係な5件が抽出されておりサブレポートには全くデータが出てきませんでした(>_<)もう一度補足させて頂きます。 IDを一致させて抽出した中で上位5件を取り出したいです。これはSQLで両方の条件を組み込まないと、レポートのプロパティの【リンク親フィールド】【リンク子フィールド】で設定して、さらにそのサブレポート内で指定しているQ_印刷でTOP5を取り出すということは出来ますでしょうか。効率が悪そうなので他に良い方法がありましたら教えてください。

関連するQ&A

  • Access2003 クエリのトップ値を使って指定件数より多く表示される

    Access2003で、フィールドを昇順に並べ替え、上位10件を表示するクエリを作成しています。 11件目以降の対象フィールドにも10件目と同じ値があるのですが、上位10件の指定に対して11件目以降も表示されます。 別のファイルでも同じようなクエリを作成していますが、そちらは指定した10件のみが表示されます。 どこかに設定があるのでしょうか? ご存知の方がいらっしゃいましたらご教授ください。 <状況> 最寄り駅からの所要時間(徒歩の分数)を格納したフィールドがあります。 単純に所要時間を昇順に並べ替えると、分数毎のレコード件数は下記の通りになります。 ・1分のレコード → 2件 ・2分のレコード → 5件 ・3分のレコード → 6件 クエリで「所要時間」の《並べ替え》を《昇順》にし、ツールバーにある「トップ値」の値を10にして実行すると、上記の1分~3分の13件が表示されてしまいます。 ※他のフィールドについては、条件等なにも設定していません。 なぜ指定件数を超えるレコードが表示されるのでしょうか? 指定件数のみの表示にするにはどうすればよいのでしょうか? 以上、よろしくお願いいたします。

  • 【Access2000】レコードの抽出方法

     Access2000を使用してデータベースを作成していますが、抽出条件でつまずいています。  具体的には、  【1】選択クエリーAを基に作成したフォームA(単票形式でレコードを1件ずつ表示)があります。  【2】フォームAの中に単票形式でレポートを出力するマクロボタンが有。  【3】現在はマクロボタンを押すとパラメータで「データNo.?」と入力してもらう形になってレコードを1件抽出する形になっています。    ※画面上に表示されている「データNo.」フィールドの数値を入力してもらう形です。  質問についてですが、今のところはパラメータを入力してもらいレコードを抽出→レポートを出力していますが、パラメータを使わず、現在、フォーム上に表示されているレコード(表示されている1件)を抽出する方法はないかと壁にぶち当たっています。  言い換えれば、レポートを出力する際の元になるクエリの抽出条件で「現在、表示されているレコード」をどのように記述すればいいか、もし御存知の方がいらっしゃいましたら御教示お願いいたします。

  • Access2003 空レコード挿入

    レコード件数0件のテーブルに空レコードを1件挿入したいのですが、追加クエリで可能でしょうか? 可能な場合の方法、また他の方法についても教えてください。 Access初心者なのでVBA等詳しくありません。よろしくお願いします。

  • Accessメインレポート非表示

    Access初心者です。 サブレポートにリンクされたメインレポートがあります。 サブレポートに表示するレコードが無い場合は、メインレポートのレコードも非表示にし、印刷対象外にしたいのですが、可能なのでしょか? 方法があれば教えて下さい。 よろしくお願い致します。

  • Accessの使い方についてご質問。

    Windows7、Access2010を使って、データベースの作成をしています。 レポートから、別のレポートへ行く方法について質問です。VBAを使わず、Accessの機能ですませたいです。 テーブルから、パラメーターを使って特定のデータを抽出する、クエリを作成・レポートにしました。 現状は、あるレポートに設置したボタンをクリックすると、前記したパラメータ―クエリが発動、ユーザーに条件を入力させます。入力・OKボタンを押すと、レコードを抽出、条件に合ったデータのみが表示されたレポートへ行く仕組みです。 使う相手に入力させる手間をかけさせず、レポートからレポートへ行く方法を探しています。行く先のレポートは、条件分岐や抽出によって、特定のレコードのみ表示させたいのですが、今のところ、パラメータークエリをレポート化、ボタンにそのクエリを埋め込んで、クリックするとそのクエリが発動して、条件をユーザーに入力させ、一致したレコードのみが表示されたレポートに行く仕組みしか方法が分かりません。パラメーターにわざわざ入力させずにすむ、良い方法がありましたら、ご教授をお願いします。 理想としては、ボタンを設置してあるレポートに、抽出対象となるレコードが一覧で並んでいますので、それをクリックしてジャンプできるか、それらのレコード横にボタンを用意して、そのボタンを押すことで、レポートに行くことができればいいのですが。 宜しくお願い致します。

  • access #error 表示について

    ABCという3つのクエリを利用してレポートを作成しています。 Aはメイン。あとのBCをサブレポートとしていて、 そのサブレポートのデータをメインで参照表示させていますが、 データがないものは#errorと表示されます。 データがあれば正しく表示されます。 これはせめて印刷のときだけでも表示されないようにすることは 出来ないでしょうか? よろしくお願いします。

  • Access テーブルを分割してエクスポートしたい

    Access 2000のテーブルを指定した行数分に分割して、csv形式にエクスポートしたいと思っています。 例えば、100万件のデータを20万件×5ファイル、というイメージです(対象件数/分割件数ともに一定ではありません) 自分で考えてみたのですが、上位20万件をクエリ→削除クエリ→上位20万件をクエリ→削除クエリ・・・という 方法しか思い浮かばず、もっと簡単に出来る方法をお教えいただければと思います。 よろしくお願いします。

  • Access2003で、メイン情報を持つレポート中の複数サブレポートで

    Access2003で、メイン情報を持つレポート中の複数サブレポートで印刷位置がずれてしまいます。 お世話になります。 メインレポートの中に5つのサブレポートを出力しますが、サブレポートにデータが取得されない場合は空間ができてしまうし、データがたくさんある場合は下向きに拡張します。 そこで、各サブレポートの最大予想レコード数をもとに、1ページの罫線枠の中に収まるようにレイアウトしました。 でも、ページの一番下に印刷される注意書きのテキストボックス部分も上下するので、外枠罫線との間隔がサブレポートのレコード数によって違ってきます。 このテキストボックスを外枠罫線の5ミリ下等、印刷場所を固定することはできますでしょうか。 可能ならその方法を教えてください。よろしくお願いいたします。

  • ACCESS2000でクエリを抽出条件で抽出

    VBA上でクエリの抽出データを取得してファイルに書き込むというプログラムを書いております。 抽出条件として、今日の日付のレコードを取得したいのですが型が一致しませんとエラーになります。 strSQL = "SELECT * FROM " & (クエリー名)& " where (クエリー.カラム名)='" & Format(Date, "yyyy/mm/dd") & "'" クエリーのカラム名は全角漢字です。 どこがおかしいのでしょうか? よろしくお願いいたします。

  • Access2007サブレポートの絞り込みついて

    Access2007のサブレポートの絞り込み(フィルタ)について教えて下さい。 いつも親切に教えて下さりありがとうございます。 Access2007でサブレポートを入れたレポートがあります。 フォームから絞り込み(フィルタ)をかけて印刷できるようにしているのですが、サブレポートが上手く作動しません。 主にフィルタは日付で検索します。 メインレポートとフォームは同じクエリから作成しています。 サブレポートは別のクエリからです。 リンクフィールドには顧客IDが親子で入っています。 フォームに印刷ボタンを設置し、DoCmd.OpenReport "レポート名", acViewPreview, , Me.Filter で、印刷出来るようにしています。 クエリには抽出条件は入れていません。 例えば12/17のみフィルタをかけた場合は、メインもサブを作動するのですが、 12/17と12/18など1つ以上の条件を選択してフィルタをかけると、メインのみ2日分表示されサブは12/17のみ表示されます。 サブレポートも同じようにフィルタをかけた場合に作動させるにはどうしたら良いでしょうか? 大変わかりづらい説明で申し訳ありません。 教えて下さい。よろしくお願い致します