投稿日 | : 2007/07/26(Thu) 14:28 |
投稿者 | : 3時間放置のポテチ |
Eメール | : |
URL | : |
タイトル | : Re^5: プレビュー印刷後に印刷したいのですが |
魔界の仮面弁士様レスポンスありがとうございいます。
> > どなたかデータレポートをDataEnvironmentを使わずに
> > データベースの情報を印刷する方法を伝授してください。
>
> DataEnvironment の存在までは知っておられるようなので、
> (1) SQL Server からデータを取得する手順までは把握している。
> (2) DataEnviroment 経由で印刷する方法も把握している。
> という前提で回答したいのですが、それで良いでしょうか?
はい、おそらく大丈夫だと思います。
えっと、この質問の意味は、DataReportのフィールドで構造の取得をした後、
DataReportのプロパティでDataSourceをDataEnvironmentに設定、
DataMemberを登録者マスタに設定、DataReportの各Textにデータベースの各データを表示する。
という作業をやったのですが、この設定では自分の勉強にならないと思いプロパティを使わないで表示したいという意味を込めて質問しました。
#プロパティを使わないと無理なら少々妥協してもかまわないかも
> 次に (2) ですが、DataEnvironment 無しの DataReport 印刷は、DataEnvironment 有りの
> 時よりも難易度が上がります。帳票のデザイン方法など、DataReport ツールの基本的な利用法を
> 覚えるためにも、(2) の件も事前に把握しておいてください。
> もし、その (2) で躓いているようであれば、VB6のヘルプ(MSDN)に、具体例を交えた
> DataReport のチュートリアルが掲載されていますので、そちらを参考にされると良いでしょう。
もし(2)がプロパティ経由ではないとしたら多分ここで躓いてますね。
> ---
> さて、本題。
>
> 通常、DataReport には DataEnviroment を割り当てますが、それ以外にも
> 実行時に ADODB.Recordset を Set することも可能です。
> (DataSource をデザイン時に設定したいなら、DataEnviroment を使うしかありません)
> 今回の場合、その Recordset には、SQL Server から得たデータが取得されていることに
> なるわけですが、ここで注意点があります。
>
> DataReport 側でグループ化の機能を使っていなければ、そのまま
> Set DataReport1.DataSource = rs
> DataReport1.DataMember = ""
> DataReport1.Show vbModal, Me
> だけでプレビューできるのですが、グループ化の機能を必要としている場合、
> 通常の Recordset では期待動作しません。
このコードの場合DataReport1.DataMenber = "" の""部分を "登録者マスタ"
と書き換えればいいわけですね?
#ついでに使うか分かりませんがSQL構文を
# mysql = "SELECT * From 登録者マスタ" & " Where 登録No = " & txtNo
# Set rs = Conn.Execute(mysql)
#もし使うのであればこのコードをどこに入れればいいのでしょうか?
今回はグループ化の機能は必要ないので魔界の仮面弁士さんのコードを参考いたします。
少々疑問に思ったのですが、この場合印刷プレビュー後に一度操作画面に戻りデータ変更をした時、
印刷プレビューと印刷物は変更されたデータベース通りに出てきますか?