データベース情報をコードから行いたいです

HOME › フォーラム › 旧サポート掲示板 › データベース情報をコードから行いたいです

  • このトピックは空です。
10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • 投稿者
    投稿
  • #2456
    もねお
    ゲスト

    MDBのマスタのベタ印刷を行っています。
    データベース情報を「使用する」にして、プロバイダーと
    データソース(固定パス)を書いて、レポートソースに
    select * from テーブル名と書くことで、印刷ができました。
    この情報をプログラムから行いたいのですが、どのように記述すればよいでしょうか?
    sample内のクラスですが、クラスがわからないのでクラスを使わない方法を教えていただければありがたいです。
    環境はVB6.0+SP5+ACCESS2000です。
    よろしくお願いします。

    #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 = True

    wrdRep.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 True

    Set wrdRep = Nothing
    Set wrdPrt = Nothing

    以上です、よろしく御願いいたします。

    #2458
    もねお
    ゲスト

    早々の回答ありがとうございます。
    早速、回答のコードを試してみました。
    しかし、エラーが表示されます。

    ‘ プリンターをオープン
    wrdPrt.OpenPrinter g_frmPrint.hWnd

    g_frmPrintの変数が定義されていないエラーです。
    いろいろと、試してみたのですが、わかりませんでした。
    また、プレビューの方法も回答いただければありがたいです。
    プレビューのコマンドがあったのですが、引数がわかりませんでした。
    よろしくお願いいたします。

    #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 = True

    g_frmPrint.SetFocus

    Unload g_frmPreview

    Set g_frmPreview = Nothing

    wrdPev.ClosePreview

    Set wrdPev = Nothing

    以上です、よろしく御願いいたします。

    #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 = True

    wrdRep.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
    「オートメーションエラーです」が表示されます。
    エラーの場所は、「エラー発生」と記述している場所です。
    よろしくご指導お願いします。

    #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 = Nothing

    Exit Sub

    Error_Handle:
    MsgBox “エラー内容:” & wrdCtrl.LastErrorText & ” エラーコード:” & wrdCtrl.LastError

    End Sub

    以上です、よろしく御願いいたします。

    #2462
    もねお
    ゲスト

    早速試してみました。
    エラーのないようですが、
    「エラー内容:システムにデフォルトプリンターが見つからない。またはシステムにプリンターが登録されていない。エラーコード:-1634」
    が表示されます。

    こちらのプリンタの環境ですが
    今は、全てネットワークプリンタが設定されています。
    プリンタサーバーの電源が、ON、OFF関係なしにエラーが表示されます。
    プリンタは、インクジェットプリンタで、
    CANON BJF900
    CANON PIXUS MP5
    CANON PIXUS 560i —-通常使用するプリンタに設定してる
    この3台を使用しています。
    あとあるのは、
    Acrobat Distiller
    Fax
    です。
    プリンタの接続方法は、LAN環境で、HUBを使用してプリンタサーバーにつながっています。
    プリンタサーバーは、USBハブが出ていて、そこから、プリンタが2台枝分かれしています。
    通常使用するプリンタは、枝分かれしているプリンタを使用しています。

    よろしくお願いいたします。

    #2463
    星野@ソフトウィング
    ゲスト

    お世話になっております、ソフトウィング星野です。

    エラー内容のの報告ありがとうございました。こちらの環境でネットワークプリンタのみを使用しての行ったのですが、問題になっている現象は起こりませんでした。
    度々申し訳ありませんが、以下のことについてお知らせいただけませんでしょうか?

    ・お使いのWindowsOS名称
    ・プログラムの作成方法使用形体(EXE形式やASPで使用している等)

    以上です、よろしく御願いいたします。

    #2464
    もねお
    ゲスト

    回答ありがとうございました。
    環境ですが、
    windows XP(SP1)
    VB6.0(SP5)
    ADO接続で、ACCESS2000(MDB形式)
    VBからデザインモードで実行
    現在は、お試し版を使用しています。
    14日で、評価をした後に、購入を考えております。
    評価版なのでなどのの問題はあるのでしょうか?
    あと、同じパソコンに、評価版のwingreport Ver3.0
    もインストールされています。
    個人的には、ACCESS LIKEなDBを考えているのですが・・・

    #2465
    もねお
    ゲスト

    印刷できました。
    原因が不明なのですが、以前より、LANカードの調子が、
    接続したり、しなかったりと断線のような動きをするので
    頭にきて、新しいのと変えてみました。
    そしたら、印刷できました。プログラムは変えていないので
    考えられる原因としては、このLANカードぐらいしか思いつきません。いろいろとありがとうございました。
    まだ、プレビューは成功していませんが、いろいろと試して見ます。

10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。