• 締切済み

アクセスのレポートでこんなことできないでしょうか?

いろんなページを探したんですが答えが見つからずに困っています。 Access2000のレポートで下のようなレポートを出力したいのですが、どうしたらいいか分かりません。 出力例 __________________________ ジャンル|洋画・邦画| タイトル |出演者・・・   ←タイトル行 ____|_____|______|________     |     |荒野の七人 |○○○○・・・  ←以下明細行     | 洋画  |______|________     |     |黄色いリボン|○○○○・・・ 時代劇 |_____|______|________     |     |七人の侍  |○○○○・・・     | 邦画  |______|________     |     |羅生門   |○○○○・・・ ____|_____|______|________ (↑票が崩れていたらごめんなさい) という具合に、ジャンルと洋画・邦画の行は、エクセルのセルの結合+レイアウト中央にしたような票を出力したいのです。(できればジャンルは縦表示で) 探しても見つからないし、各明細を詳細セクションで出力するレポートの仕様では無理なのかなと半分諦めているのですが、何方かご存知の方が居たら是非ともご教授お願いします。m(__)m

みんなの回答

  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.4

まだ締め切られていないので解答します。 この見出しを上位置にと言うことでしたら比較的簡単に出来ます。 見出しまではそのままページヘッダに作ります。 ジャンルと洋画・邦画の項目のテキストボックスの境界線は無しで作ります。また、プロパティの繰り返し時の表示を無しにします。 表の左側の線と洋画・邦画の区切りの線は縦に線を引いておきます。 タイトルや出演者移行の明細項目のテキストボックスには境界線を付けます。 並べ替え/グループ化の設定でジャンルと洋画・邦画で並べ替えるように指定しグループフッタを表示するようにします。 ジャンルのグループフッタにジャンルと洋画・邦画部分の区切り線、洋画・邦画のグループフッタに洋画・邦画部分の区切り線を置いておけばブレイク時に横線が引かれるようになります。 このコントロールでしたら改ページも対応出来ると思います。 レイアウト中央は明細が偶数の場合、不可能となりますね。奇数でしたら算出して出力とか出来ますが。

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.3

試したわけではありませんがサブレポートを使用して出来そうです。 今回のケースですと、2段階になっていますから、サブレポートの中にさらにサブといった感じでしょうか。

noname#102878
noname#102878
回答No.2

#1です。 AccessからExcelに書き込む方法です。 AccessのVBEで[ツール]-[参照設定]を開いて「Microsoft Excel 9.0 Object Library」にチェックを入れます。 かなり見づらいと思いますが、標準モジュールに以下のようなコードを書き込んでください。 AccessのVBAでExcelを起動してコントロールします。 Sub Test() Dim appXL As Excel.Application Dim wbkOut As Excel.Workbook Dim shtOut As Excel.Worksheet Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim i As Long Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset rs.OpenRecordset "クエリー名またはSQL文またはテーブル名", cn Set appXL = New Excel.Application appXL.Visible = True Set wbkOut = appLX.Workbooks.Add Set shtOut = wbkOut.Worksheets(1) With shtOut .Cells(1,1).Value = "ジャンル" .Cells(1,2).Value = "洋画・邦画" .Cells(1,3).Value = "タイトル" .Cells(1,4).Value = "出演者" End With i = 2 Do Until rs.EOF = True With shtOut .Cells(i,1).Value = rs.Fields("ジャンル").Value .Cells(i,2).Value = rs.Fields("洋画・邦画").Value .Cells(i,3).Value = rs.Fields("タイトル").Value .Cells(i,4).Value = rs.Fields("出演者").Value End With i = i + 1 rs.MoveNext Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing Set shtOut = Nothing Set wbkOut = Nothing Set appXL = Nothing End Sub とまぁ、こんな感じですが、よく見ればこのコードはグループ化を行っていません。 Do~Loopの中で値を書いているわけですが、1行ずつ書いていきながら1行前に書き込んだ値と比べて「同じ値なら書き込まない」「違う値なら書き込む」とするか、とりあえず全部書き込んで最後に消しこみを行うか、好きな方法でどうぞ。 相手はExcelですのでセルの連結なんかも出来ますしね。

kenta02
質問者

補足

temtecomaiさん、どうもありがとうございます。(VBAコードまで書いて頂いて恐縮です) 可能であればアクセスのレポートで実現したかったんですが、エクセルオブジェクトを使用したVBAが出てくるということは、はやりアクセスでは不可能ということでしょうか。 No.1で回答頂いたのと同じように、前レコードと同じ内容なら表示しないという方法で形だけはなんとか出るようになったんですが、どうしてもグループの1行目または最後の行にだけ表示させるやりかただと見栄えが悪く、できるならそのグループが2行あるならその中間位置にセンタリングで表示させたいです。 また、ジャンル列の縦表示についてもできればいいのですが、これもはやり無理なんでしょうか。 うーん、前々からの不満点ですが、アクセスのレポートって使い勝手が悪いというか、気が利かないというか。。。(エクセルじゃ簡単なのに) エクセルオブジェクトは最終手段として、もう少し私も試行錯誤してみようと思います。

noname#102878
noname#102878
回答No.1

詳細より上のレベル「ジャンル」「邦画・洋画」「タイトル」に同じ値が連続しているレポートまでは作れてます? 作れていない場合はマスターテーブルと詳細テーブルを連結して表示するクエリーを作成してください。 で、 やはり簡単には行かないと思います。 レポート表示用のテーブルを作成し、グループ化したいフィールドが2つずつ存在するようにする。 「ジャンル1」「ジャンル2」「邦画・洋画1」「邦画・洋画2」「タイトル1」「タイトル2」「出演者」 って感じ。 で、レポート用クエリーの結果をVBAからADOを使用して1件ずつレポート用テーブルに転記していきます。 その際「~2」のフィールドには「~1」と違い、「前のレコードと同じ値なら書き込まない」「前のレコードと違う値なら書き込む」という感じで値を入れていきます。 つまり「~2」のフィールドが「グループ化された」フィールドになります。 全てのレコードを書き終えたらレポートを表示する。 そのレポートでは「~1」ではなく「~2」フィールドを表示するようにしておく。 ね、かなり難しいでしょ。 実際、ボクも今頭の中で適当に考えただけなので試してません。 クエリーやSQL一発でレコードを書き込むのではなく、レコード1行ずつ書き込むので、レコード数によっては処理時間も気になります。 だけどここまでやるならばレポートではなく、AccessVBAからExcelのオブジェクトを作成してExcelへガシガシと書き込んだほうが良いような気もします・・・

関連するQ&A

  • アクセスのレポートを学べるところ

    アクセス2000を使用しています。 いろいろURLをみていたのですが、フォームやクエリのことを 詳しく説明しているところはあるようですが、レポートのことを 詳しく解説してくれているURLをご存知ないでしょうか? やりたいことは、例えば社員テーブルより支店ごとの社員名簿を 出力したいのです。但し、明細行は一頁に20行枠付きで出力し フッターには支店の住所を出力します。当然、一頁20行に満た ない場合もありますが、その時は、できればVBAで「改行」を記述 したいと思います。 素人で欲張りすぎかもしれませんがよろしくお願いいたします。

  • Access2016のレポートについて

     いつもお世話になっております。  Access2016のレポートで困っていますので、ご教示をお願いいたします。  下記のようなテーブルがあり、代表者がまだ決まっていない地域があるため、空白となっている所があります。  これをレポートで出力した際、代表者が空欄となっている所は1行分空いてしまいます。この代表者が空欄となっている所を詰めて出力したいと思います。  いろいろと調べて、詳細セクションと代表者名のテキストボックスの印刷時縮小をそれぞれ「はい」にすると、null値または「長さ0の文字列」の時は自動で詰まるとありましたが、なりませんでした。  どうか、ご教示をよろしくお願いいたします。 【テーブルA】 地区名   地域名   代表者名 AAA     あああ   ネズミ AAA     ああい   ウシ AAA     ああい  (空白) BBB    いいあ   トラ BBB     いいあ   ウサギ CCC     ううあ   タツ CCC     ううあ  (空白) CCC     ううい   ヘビ 【レポートA】 地区名(グループ化)  地域名(グループ化)  代表者名(詳細セクション) AAA             あああ                         ネズミ             ああい                         ウシ                         (空白行) ------------------------------- BBB             いいあ                         トラ                         ウサギ ------------------------------- CCC             ううあ                         タツ                         (空白行)             ううい                         ヘビ ------------------------------- ↓空白行をなしで出力したい形 【レポートA】 地区名(グループ化)  地域名(グループ化)  代表者名(詳細セクション) AAA             あああ                          ネズミ             ああい                          ウシ ------------------------------- BBB             いいあ                          トラ                          ウサギ ------------------------------- CCC             ううあ                          タツ             ううい                          ヘビ -------------------------------

  • 数字の入る映画なりドラマで思い出深いもの

    こんばんは どうも埒もない質問で申し訳ないのですが 意外と映画なりドラマで数字の入る作品は多いようです 古い映画ですと 黒沢明監督で「七人の侍」あるいは「椿三十郎」 これは海を渡りリメイクされましたが「荒野の7人」 年配の方はご存知でしょう チャールトン・ヘストンで「北京の55日」 邦画のドラマではこれも懐かしい「三匹の侍」 私が何と言っても思い出深いのでは「12人の怒れる男」 法廷劇の傑作でしょう 邦画、洋画は問いません 思い出深い映画なりドラマがありましたらお話したいと思います よろしくお願いいたします ただ私、最近のものは余り知りませんので頓珍漢なお礼になるやもですが 予めお詫びしておきます

  • タイトルに 数字の入る映画はありましたか?

    こんにちは タイトルに 数字の入る映画は案外多いようです 黒澤明監督「 七人の侍」 あるいは 同じ黒澤明監督作品で「 椿三十郎」 高峰秀子さん主演の「 24の瞳」 懐かしく思い出します 洋画に目を転じれば 「 七人の侍」の リメイクですが「 荒野の七人」 法廷劇の傑作と思いますが「 12人の怒れる男」 まだまだたくさんあると思います お話 お聞かせ頂きたく思います どうぞよろしくお願いいたします

  • Accessレポートでの改ページ

    Accessのレポートで、明細行を必ず8行ずつ印刷したいのです。 8行に満たない場合は、8行になるまで空白行を加えます。 そして、ヘーダー部に明細の金額合計があり、最終ページはヘッダー部を含めて8行にしたいので、明細行が7行となります。 とりあえず↓ 印刷する明細行数を常に8の倍数になるように空白行を作り、8行ごとに改ページしてみました。 しかし、最初の1ページ目はちゃんと8行で改行されますが、2ページ目からは、1行ずつしか印刷されません。 例えば、明細レコードが9レコードの場合、空白行含めて15行の明細をつくりました。 それを以下のプログラムで実行すると、9レコード目から15レコード目までは、1ページに1行ずつしか印刷されません。 どうすればいいのでしょうか? どなたかよろしくお願いします。 ***************************************************** Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) '印刷行の初期化 cntPage = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '印刷行を更新 cntPage = cntPage + 1 If cntPage = 8 Then '改ページ Me.Section(acDetail).ForceNewPage = 2 '印刷行の初期化 cntPage = 0 End If

  • Accessレポートに表示された結果でレポートの総合計が出せない

    Access97である3つの数値を一覧で表示しますが、レポートに表示するのみ、うち2つの項目を比較して、四捨五入値や切り上げ・切り捨て値で表示させ、その結果で合計をページ単位&全合計を出します。20行で必ず改ページをするため、詳細セクションの "OnPrint/印刷時" のイベントプロシージャで、行カウントの制御とページ単位の累計を計算していますが、全合計は、おかしな数値になてしまいます。 (全合計は、最終ページにそれのみで出力させなければなりません。) なにかいい方法はないでしょうか?

  • ACCESSのレポートフッターをグループフッターの下に出したい。

    こんにちは ̄◇ ̄ ACCESSでテーブルの一覧をレポートで出力したいのですが、コード毎にグループフッターで小計を出力し、最終グループの下に総合計を出力したいのですが、実現方法が分かりません。 小計はグループフッター、合計はレポートフッターに設定しており、グループフッターの改ページプロパティには「カレントセクションの後」を設定しています。 すると、最終グループの最終行にグループフッターが出たあと、改ページをしてから総合計が出ます。 なんとか最終ページで改ページせずに総合計を出力できないでしょうか??? OS WIN 2KPRO SW ACCESS2000

  • Access2000・レポートのグループフッターについて教えて下さい。

     Access2000レポートのグループフッターにて、下記のように出力したいのですが 上手くいきません。    品名 数量  単価    金額    A   10  @100  1,000円    A   20  @100  2,000円    A   30  @100  3,000円 合計 A   60個 @100  6,000円 グループフッターにて、合計欄の品名(A)と単価(@100)をテーブルから出力 をしようとすると次のようになってしまいます。    品名 数量  単価    金額    A   10  @100  1,000円 合計 A   60個 @100  6,000円 2件目以降の明細が出力されずに、合計行が出力されてしまいます。 どのように設定をすれば、上手く出力されるのでしょうか。 以上、宜しくお願い致します。

  • ACCESS2000のレポートについて

    ACCESS2000のレポートについて教えてください。 単票形式のレポートです。顧客に対し行った環境検査の明細を 出力するのが目的です。 データは 1.顧客データ(顧客名、住所等) 2.1次検査データ(1顧客に対し、1~6行分のデータ) 3.2次検査データ(1顧客に対し、1~6行分のデータ。必ず1次検査データの行数と同じになる。) があります。 1.の顧客データをメインフォームとし、上に顧客名等、その下に 2.の1次検査データ 3.の2次検査データをそれぞれ縦に2つのサブフォームとして配置しています。 ページ設定はB5の用紙に設定しています。 余白からはみ出さないよう外枠の罫線をメインフォームにつくり、2つのサブフォームはその中です。1次検査と2次検査の仕切りの横罫線を入れるため、3.の2次検査データのサブフォームのすぐ上にくっつけて2本線(横線)を入れています。 理想としては、1次検査データの上下幅と2次検査データの上下幅がいつも均等なサイズにしたいのです。(最大の6行分のデータが格納できるサイズで) ところが、1次検査データが1行分しかないときは、かなり1次検査データ欄の上下幅がせまくなり、6行分のデータのときには広がってしまいます。(当たり前なのかもしれませんが) 1次検査データサブフォームのデータ行数に影響されずに、2次検査データサブフォームの上位置を固定する方法はないでしょうか? また、このレポートを印刷するとき、各サブフォームの行数が2行までのときは問題なく次々に印刷されるのですが、3行を超えると次のページが、メインの顧客データだけでサブフォーム欄が白紙のものが1ページ入ります。 最大の6行になっても画面上はみ出している様子はありません。サブフォームが1行でも6行でも外枠罫線の中に納まっています。少し縦方向や横方向をちじめて見ても同じです。なにか対策はないでしょうか?

  • 砂漠・荒野の出てくるオススメ映画はありませんか

    砂漠・荒野が舞台の映画が好きで、 オススメの良い作品がありましたら教えてください。 いままで見た中で良かった物は ・バグダッドカフェ ・トレマーズ(1~4) ・コンタクト(ジュディフォスター) ・なんとかインディアン(バイクのスピードに挑戦する話) といったところですが、 こういう感じの、のんびりした映画、面白い映画、 乾いた熱い風の吹くような、だだっ広い荒野とかの雰囲気が好きです。 西部劇は別段、好きではなく興味もないのですが・・・ 洋画でも邦画でもどちらでもよいです。