• ベストアンサー

ADOで接続しレポートで印刷する方法

 基幹システムにoracleを利用したシステムを使っているのですが、帳票類はADOで接続しACCESSで作成したいと考えています。しかし、調べてみるとフォームのレコードセットには利用できるのですが、レポートには対応していないことがわかりました。何か効率良くレポートを作成する方法はないでしょうか?

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>一覧というよりも希望にそった資料を作成するように指示 一覧でなければCrystalReportsを使えばOracleから問題なくレポートを作れると思います。でもちょっと高目ですが。CrystalReportsがあればVBからも使用できます。CrystalReportsでレコードセットを作成して出力なども出来ます。 費用的にとなるとmdbにインポートして「希望にそった資料」になるようにAccessでレポートを作成するのが簡単かと思います。 希望にそうようにレコードをインポートしてきて更に出力時に必要な処理をさせれば良いのではないでしょうか。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>フォームのレコードセットには利用できるのですが・・・ という事なのでレコードセットは取得できているとして・・ レコードセットの状態でそのまま出力させる。 例えば Set rec = cnn.Execute("select * ・・・・") で取得したレコードセットを下記のようにヘッダ部を出力しレコード全体を出力する。 Printer.Print rec.Fields(0).Name; Tab(20); rec.Fields(1).Name Do While Not rec.EOF Printer.Print rec.Fields(0).Value; Tab(20); rec.Fields(1).Value rec.MoveNext Loop Printer.EndDoc こんな感じではどうでしょうか。 または SQLを指定してmdbのテーブルへインポートしてそのテーブルを使ってレポート出力する。

im02omi
質問者

補足

会社側からは、一覧というよりも希望にそった資料を作成するように指示を受けています。おそらく、mdbテーブルにインポートするしかないと思います。いろいろとためしたのですが、SQLの(SELECT INTO)構文でインポートすることには成功しました。このやり方しかないかもしれません。仮にACCESS以外にもレポートを作成するツールというのは市販されているものでしょうか?調べたところクリスタルレポートというソフトがあったのですが・・・・

関連するQ&A

  • ADOのRecordCountプロパティについて

    ADOを介してOracleにアクセスしています。 以前にAccessで行っていた時は、 Set rst.Open "Table_Main", cnn, adOpenStatic With rst lCount = .RecordCount End With とすればレコード数が返ってきたのですが、 Oracleの場合は-1のままなのです。 レコードセットの開き方に問題があるのでしょうか。

  • ADO接続の共有

    ACCESS2007をフロントにしてDBをSQL-Server2005Expressにして開発を 行おうとしています。 できる限りネットワークの負荷を減らそうと、ADO接続/ADOレコードセットと フォーム連結で開発したいのですが、ネットで検索するとADO接続を各画面で 行わなければならないような記述しか見あたりません。  ・検索キーワード:ADO 接続 共有 できれば、ADO接続はプログラム起動時1回で、DBデータを表示する 画面等を開く場合は、起動時に取得した接続を使い回したいのですが、 当該方法が記載されたいるようなURL等をご教示願えないでしょうか?  ・他mdbのテーブルをリンクテーブルとして使用したいため、   AccessProject(.adp)の使用は断念しました。 上記よろしくお願いします。

  • アクセス2000でレポート印刷

    アクセス2000でレポート印刷 レポートを印刷するとき、フォームで表示しているレコードだけを印刷したいのですが・・・ フォーム上でコマンドボタンを作ってレポートを印刷すると、関連するレコードが全て印刷されてしまいます。 フォームでレコードを指定して、そのレコードだけを印刷・・・ 教えてください!!!!

  • アクセス2003でレポート印刷について。

    いつもいつもお世話になっています。 アクセス2003で月間の抽出結果一覧がある帳票フォーム(選択クエリがレコードソースです)があり、印刷ボタンでその一覧のレポートを印刷したいと考えています。 そのフォームを開く時に、抽出条件として西暦と月を入力するのですが、そのレポート(同じ選択クエリがレコードソース)を印刷するときも再度西暦と月を指定しなければいけません。この年、月の入力を一度ですませるにはどのようにしたらよいでしょうか? どなたかよろしくお願いいたします。

  • Access→Oracleデータ参照にはADOとパススルークエリどちらが良い?

    AccessからOlacleに接続してデータを取得する処理について 教えてください。 数十万件単位のレコードがあるOracleのテーブルを参照する 必要があるのですが、かなりの負荷がかかると思うので出来 るだけ効率の良い方法で取得したいと思っています。 現在はパススルークエリを作成して、必要に応じてQueryDef でSQLを書き換えて使用しています。 特に問題は感じないのですが、本などを見るとADOやDAOで Oracleに接続し、結果をRecordSetに格納するやり方が一般 的なように思えます。 ADO/DAO接続でデータを持ってくるのと、パススルークエリで データを参照するのでは処理スピードは違うでしょうか? また、パススルークエリを使用する場合のデメリットなどがあり ましたら教えてください。 よろしくお願いいたします。

  • Accessのレポート印刷について教えて下さい。

    Accessのフォームでフィルタを使い絞り込んだデータをレポートで 印刷する場合について教えて下さい。 DoCmd.OpenReport "レポート名", acViewPreview, , Me.Filter では、フォームとレポートが同じレコードソースだと使えるという事ですが、 フォームとレポートのレコードソースが別の場合はどのようにすると フィルタで絞り込んだ条件のレポートを印刷できますか? 教えて下さい。よろしくお願いします。

  • ACCESSのレポートでの表示について

    1つのレコードに複数のフィールドを作り、帳票フォームを作成し、それをレポートにしました。 レポートで表示すると、1ページに複数のレコードの内容が表示されています。 そこで、それぞれのレコードには空欄のフィールドが多くあるので、データが入力されてあるフィールドのみを表示させていきたのですがどうすればよいでしょうか。 そうやってつめる事によって1ページに表示されるレコード数を増やしていきたいのですが・・・・・。 よきアドバイスお願いいたします。

  • ACCESSで帳票形式のレポートを作りたい

    ACCESS2000で帳票形式のレポートを作成したいと思っています。 細かい設定をしたいのでウィザードからではなく、デザインビューから 作成したんですが、データが単票形式で出てしまい、1レコードで 1枚しか印刷されません。 帳票形式へ変換するにはどうすればよいのでしょうか?

  • ADOレコードセットをExcelファイルへエクスポート

    ADOレコードセットをExcelファイルへエクスポート ADOのレコードセットをExcelファイルへ出力したいと考えています。 レコードセットを使用した場合、TransferSpreadsheet の様なメソッドは使えないのでしょうか? ファイルサーバーにAccessクエリを作成する事も考えたのですが、多数で使用する為、 トラブルが怖いので避けました。 レコードセットを直接出力できるメソッドor関数等はないものでしょうか? アドバイスよろしくお願いいたします。 m(__)m

  • ADOとDAOの違い

    Access2000を使っています。今でもレコードセットオブジェクトを 取得するのにDAOを使っているのですが、ADOに移行した方がよい のでしょうか。ADOのDAOに対するメリットはなんでしょうか。また デメリットはあるでしょうか。 基本的なことかと思いますがどうぞよろしくお願いします。