- このトピックは空です。
-
投稿者投稿
-
2021年7月1日 1:13 PM #2456
もねお
ゲストMDBのマスタのベタ印刷を行っています。
データベース情報を「使用する」にして、プロバイダーと
データソース(固定パス)を書いて、レポートソースに
select * from テーブル名と書くことで、印刷ができました。
この情報をプログラムから行いたいのですが、どのように記述すればよいでしょうか?
sample内のクラスですが、クラスがわからないのでクラスを使わない方法を教えていただければありがたいです。
環境はVB6.0+SP5+ACCESS2000です。
よろしくお願いします。2021年7月1日 1:13 PM #2457星野@ソフトウィング
ゲストお世話になっておりますソフトウィング星野です。
ご質問の件について回答させていただきます。
各設定に対応した変数が、オブジェクトに用意されておりますのでのでそちらを使用していただければと思います。
下記のコードはレポートの読み込みから印刷までの流れとなっております。ご参考にしていただければ幸いです。Dim wrdCtrl As WRD1AXCL ‘コントロールオブジェクトの宣言
Dim wrdPrt As WRD1AXCLLib.WRDPrinter ‘プリンターオブジェクトの宣言
Dim wrdRep As WRD1AXCLLib.WRDReport ‘レポートオブジェクトの宣言‘コントロールオブジェクトのセット
Set wrdCtrl = frm1.WRD1AXCL1‘ エラー情報をクリアーする
wrdCtrl.Errors.Clear‘ レポートの読み込み
Set wrdRep = wrdCtrl.LoadReport(“印刷したいレポートへのパス”)‘ 連結処理を行う(「使用する」の設定と同意)
wrdRep.DBLink = TruewrdRep.DBInfo.Provider = “設定したいプロバイダー名”
‘ MDBファイルを設定
wrdRep.DBInfo.DataSource = “MDBファイルへのパス”‘ SQLの設定
wrdRep.DataSource.Source = “設定したいSQL”‘ デフォルトのプリンター出力オブジェクトを作成
Set wrdPrt = wrdCtrl.CreatePrinter‘ プリンターをオープン
wrdPrt.OpenPrinter g_frmPrint.hWnd‘ プリンターへ出力
wrdPrt.ReportPrint wrdRep‘ プリンターを閉じる
wrdPrt.ClosePrinter TrueSet wrdRep = Nothing
Set wrdPrt = Nothing以上です、よろしく御願いいたします。
2021年7月1日 1:13 PM #2458もねお
ゲスト早々の回答ありがとうございます。
早速、回答のコードを試してみました。
しかし、エラーが表示されます。‘ プリンターをオープン
wrdPrt.OpenPrinter g_frmPrint.hWndg_frmPrintの変数が定義されていないエラーです。
いろいろと、試してみたのですが、わかりませんでした。
また、プレビューの方法も回答いただければありがたいです。
プレビューのコマンドがあったのですが、引数がわかりませんでした。
よろしくお願いいたします。2021年7月1日 1:14 PM #2459星野@ソフトウィング
ゲストお世話になっておりますソフトウィング星野です。
回答いたしました内容に抜けありました。g_frmPrintという名前のフォームを新しく作成していただければエラーは解消されるかと思います。ご迷惑男おかけしまして申し訳ございません。
プレビュー出力の方法ですが、下記にコードを記述いたしますので、ご参考にしていただければ幸いです。Dim wrdPev As WRD1AXCLLib.wrdPreview’プレビューオブジェクトの宣言
‘ プレビューオブジェクトの作成
Set wrdPev = wrdCtrl.CreatePreview‘ 各種設定
wrdPev.MaxWindow = True
wrdPev.PreviewMode = wrdPREVDSPMODE_SINGLE
wrdPev.WindowCaption = App.Title
wrdPev.ParentWindow = g_frmPrint.hWnd‘ プレビューフォームをロード
Set g_frmPreview = frmPreview‘ プレビューフォームとプレビューオブジェクトを関係づけする
wrdPev.ParentWindow = g_frmPreview.PreviewWindowHandle
g_frmPreview.wrdPreview = wrdPev‘ プレビューをオープンする
wrdPev.OpenPreview wrdPREVIEWMODE_CHILD‘ プレビューへレポートを出力する
wrdPev.ReportPrint wrdRep‘ フォームを無効にする。
g_frmPrint.Enabled = False‘ プレビュー用フォームを表示する
g_frmPreview.Show vbModal‘ フォームを有効にする。
g_frmPrint.Enabled = Trueg_frmPrint.SetFocus
Unload g_frmPreview
Set g_frmPreview = Nothing
wrdPev.ClosePreview
Set wrdPev = Nothing
以上です、よろしく御願いいたします。
2021年7月1日 1:14 PM #2460もねお
ゲスト早速の解答ありがとうございました。
がんばってみたのですが、エラーが出て先に進むことができません。
すみません。またよろしくお願いします。
以下のようにコードを書き直しました。
[プロジェクト]-[コンポーネント]には、
SoftWing WingReport for DB control v1.0
にチェックを付けました。——————————————————-
Dim wrdCtrl As WRD1AXCL ‘コントロールオブジェクトの宣言
Dim wrdPrt As WRD1AXCLLib.WRDPrinter ‘プリンターオブジェクトの宣言
Dim wrdRep As WRD1AXCLLib.WRDReport ‘レポートオブジェクトの宣言
▲Dim g_frmPrint As Form1‘コントロールオブジェクトのセット
Set wrdCtrl = Form1.WRD1AXCL1
▲Set g_frmPrint = Form1‘ エラー情報をクリアーする
wrdCtrl.Errors.Clear‘ レポートの読み込み
Set wrdRep = wrdCtrl.LoadReport(“C:\Program Files\SoftWing\TEST\test.wd1”)‘ 連結処理を行う(「使用する」の設定と同意)
wrdRep.DBLink = TruewrdRep.DBInfo.Provider = “Microsoft.Jet.OLEDB.4.0”
‘ MDBファイルを設定
wrdRep.DBInfo.DataSource = App.Path & “\test_data.mdb”‘ SQLの設定
wrdRep.DataSource.Source = “select * from 社員”‘ デフォルトのプリンター出力オブジェクトを作成
Set wrdPrt = wrdCtrl.CreatePrinter‘ プリンターをオープン
▲wrdPrt.OpenPrinter g_frmPrint.hWnd ‘—–エラー発生‘ プリンターへ出力
wrdPrt.ReportPrint wrdRep‘ プリンターを閉じる
wrdPrt.ClosePrinter True▲Set frmPrint = Nothing
Set wrdRep = Nothing
Set wrdPrt = Nothing——————————————————-
▲マークは、指導を頂いた後に追加した行です。現在は、実行時エラー440
「オートメーションエラーです」が表示されます。
エラーの場所は、「エラー発生」と記述している場所です。
よろしくご指導お願いします。2021年7月1日 1:14 PM #2461星野@ソフトウィング
ゲストお世話になっております、ソフトウィング星野です。
プリンタのオープンでエラーとなってしまうとの事ですが、お手数ですが以下に記述するコードを追加していただいて詳細なエラー内容とエラーコードをお知らせいただけませんでしょうか。
On Error GoTo Error_Handle
Dim wrdCtrl As WRD1AXCL ‘コントロールオブジェクトの宣言
Dim wrdPrt As WRD1AXCLLib.WRDPrinter ‘プリンターオブジェクトの宣言
Dim wrdRep As WRD1AXCLLib.WRDReport ‘レポートオブジェクトの宣言以下略
Set wrdRep = Nothing
Set wrdPrt = NothingExit Sub
Error_Handle:
MsgBox “エラー内容:” & wrdCtrl.LastErrorText & ” エラーコード:” & wrdCtrl.LastErrorEnd Sub
以上です、よろしく御願いいたします。
2021年7月1日 1:14 PM #2462もねお
ゲスト早速試してみました。
エラーのないようですが、
「エラー内容:システムにデフォルトプリンターが見つからない。またはシステムにプリンターが登録されていない。エラーコード:-1634」
が表示されます。こちらのプリンタの環境ですが
今は、全てネットワークプリンタが設定されています。
プリンタサーバーの電源が、ON、OFF関係なしにエラーが表示されます。
プリンタは、インクジェットプリンタで、
CANON BJF900
CANON PIXUS MP5
CANON PIXUS 560i —-通常使用するプリンタに設定してる
この3台を使用しています。
あとあるのは、
Acrobat Distiller
Fax
です。
プリンタの接続方法は、LAN環境で、HUBを使用してプリンタサーバーにつながっています。
プリンタサーバーは、USBハブが出ていて、そこから、プリンタが2台枝分かれしています。
通常使用するプリンタは、枝分かれしているプリンタを使用しています。よろしくお願いいたします。
2021年7月1日 1:14 PM #2463星野@ソフトウィング
ゲストお世話になっております、ソフトウィング星野です。
エラー内容のの報告ありがとうございました。こちらの環境でネットワークプリンタのみを使用しての行ったのですが、問題になっている現象は起こりませんでした。
度々申し訳ありませんが、以下のことについてお知らせいただけませんでしょうか?・お使いのWindowsOS名称
・プログラムの作成方法使用形体(EXE形式やASPで使用している等)以上です、よろしく御願いいたします。
2021年7月1日 1:15 PM #2464もねお
ゲスト回答ありがとうございました。
環境ですが、
windows XP(SP1)
VB6.0(SP5)
ADO接続で、ACCESS2000(MDB形式)
VBからデザインモードで実行
現在は、お試し版を使用しています。
14日で、評価をした後に、購入を考えております。
評価版なのでなどのの問題はあるのでしょうか?
あと、同じパソコンに、評価版のwingreport Ver3.0
もインストールされています。
個人的には、ACCESS LIKEなDBを考えているのですが・・・2021年7月1日 1:15 PM #2465もねお
ゲスト印刷できました。
原因が不明なのですが、以前より、LANカードの調子が、
接続したり、しなかったりと断線のような動きをするので
頭にきて、新しいのと変えてみました。
そしたら、印刷できました。プログラムは変えていないので
考えられる原因としては、このLANカードぐらいしか思いつきません。いろいろとありがとうございました。
まだ、プレビューは成功していませんが、いろいろと試して見ます。 -
投稿者投稿
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。