絞り込んだデータの印刷方法

解決


小生VB障害  2005-09-21 13:51:32  No: 125560  IP: [192.*.*.*]

VB歴4ヶ月の小生が初めて質問させて頂きます。
仕様:VB6.0 ACCESS2003

ACCESSのデータをVBのウィンドウから絞込み選択を行い、
その結果をDataGridに表示させます。(そこまでは既にPGM済み)
<<問題は>>
その絞込んだデータ(DataGridに表示されているもの)を
VBのDataReportにて印刷するにはどうすればいいのでしょうか?
DataReportのDataMemberを、データが保存されている
テーブルに選択すると、当然絞り込む前の全てのデータが
印刷されてしまいます。
(SQL文で「Temp」を使えばいいのかとも思うのですが,よく分からず...)
皆様よきアドバイスをよろすぃくお願い致します。

編集 削除
Dental  2005-09-21 14:16:25  No: 125561  IP: [192.*.*.*]

> DataReportのDataMemberを、データが保存されている
> テーブルに選択すると、当然絞り込む前の全てのデータが
> 印刷されてしまいます。

"絞り込んだ結果のRecordset"を、DataReportに渡すようにしてみては。

編集 削除
小生VB障害  2005-09-21 14:24:33  No: 125562  IP: [192.*.*.*]

Mr.Dental早速のご返答有り難う御座います。

>"絞り込んだ結果のRecordset"を、DataReportに渡すようにしてみては。
同じformであれば私にもできるのですが、DataReportに渡すには
どの様にすればよろしいでしょうか?
よろしければお教え下さい。

編集 削除
comega  2005-09-21 15:56:31  No: 125563  IP: [192.*.*.*]

>同じformであれば私にもできるのですが、
DataReportは,フォームに属しているわけではないので,どこから呼び出す場合でも,コードに差は無いと思います.変数の有効範囲以外には.

>DataReportに渡すには
Set DataReport1.DataSource = レコードセット
のようにすれば良いと思います.

編集 削除
小生VB障害  2005-09-21 18:17:38  No: 125564  IP: [192.*.*.*]

comegaさん有り難うございます。
試してみましたがうまくいきませんでした...。
もう少し詳しくお聞かせ下さい。

>Set DataReport1.DataSource = レコードセット
は、Form或いはDataReportのどちらにPGMするべきでしょうか?
それとDataReportのTextオブジェクトのプロパティ、
DataMember,DataFieldにはどの値を入れるのでしょうか?

宜しくお願い致します。

編集 削除
特攻隊長まるるう  2005-09-21 18:30:19  No: 125565  IP: [192.*.*.*]

…?…すべてデザイン画面で設定しようとしているんでは
…ないですよね?

Recordset の使い方は分かってますか?例えば過去ログ検索『Recordset』
で鬼のようにサンプルが出てきますが、そーゆー使い方は
理解できてますか?コード上で変数の Recordset に絞り込んだ
検索結果を格納して、プログラムを実行している時にコードから
DataReport を設定する話ですが大丈夫ですか?

編集 削除
comega  2005-09-21 18:40:26  No: 125566  IP: [192.*.*.*]

>試してみましたがうまくいきませんでした...。
DataGrid/DateReportへの絞り込み表示をどのように作りこんだのかなど, 実際のソースを見ているわけではないので, 掲示板を見ている人にとっては, どのように変更すればよいのかという質問には, とても答えにくいです.


>は、Form或いはDataReportのどちらにPGMするべきでしょうか?
最終的にどのように作るかは, ご自分で決めてしまって良いと思いますよ.

どちらに書く事になるかは, 小生VB障害さんの作り方次第とも思えますし, 掲示板で聞いても, 曖昧な答えしか得られないと思います.


それでも強いて答えるなら, データの絞り込み処理を"誰"が行っているかで決めればよいのではないでしょうか.

DataReport自身が, データの検索から表示までを請け負うなら, DataReportが, 自分自身にDataSourceを割り当てる事もできるのかも知れませんが...今作っている絞り込み処理は, そうでは無いのですよね?

今作っている絞り込み処理は, おそらく, DataGridへの表示処理を, Form等で行っているのだと想像しています. もしそうだと仮定してよいのならば,  DataGrid へ表示させるかわりに, DataReport に出力させるだけなので, 処理も同じように Form 側に書く事になるでしょう.

> DataMember,DataFieldにはどの値を入れるのでしょうか?
こういった点は, 小生VB障害さんがどのようにレコードセットを取得し, また, 絞り込んでいるのかにもよりますので, 具体的に何を入れればよいのか, という質問には, やはり答えにくいです.

手順だけで答えるなら, レコードセットがグループ化されていないなら, Textオブジェクト(RptTextBoxオブジェクト)のDataMemberプロパティは, 空にしておいて良いはずです.
レコードセットがグループ化(階層化)されているなら, DataMemberにはグループ名(チャプタ列名)を入れてください.

DataFieldについては, そのRptTextBoxに表示させたい列名を入れるだけです.

編集 削除
小生VB障害  2005-09-27 11:03:38  No: 125567  IP: [192.*.*.*]

すっかり返事が遅くなりすみません。
Dentalさん、特攻隊長まるるうさん、comegaさん有り難うございました。
無事解決する事が出来ました!

質問の仕方など勉強させて頂きました。
これからも日々精進していく所存であります。
どうもありがとうございました。
失礼致しますぅ。

編集 削除