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

解決


小生VB障害  2005-09-21 22:51:32  No: 125560

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

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


Dental  2005-09-21 23:16:25  No: 125561

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

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


小生VB障害  2005-09-21 23:24:33  No: 125562

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

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


comega  2005-09-22 00:56:31  No: 125563

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

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


小生VB障害  2005-09-22 03:17:38  No: 125564

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

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

宜しくお願い致します。


特攻隊長まるるう  2005-09-22 03:30:19  No: 125565

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

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


comega  2005-09-22 03:40:26  No: 125566

>試してみましたがうまくいきませんでした...。
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 20:03:38  No: 125567

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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加