• ベストアンサー

出力するプリンタを指定したい。

現在、VB6.0で開発を行い、帳票をACCESSのレポートを使用しています。 レポートを印刷した際に、VB側より指定したプリンタに出力したいのですが、決まって通常使うプリンタに出力されてしまいます。 プリンタは指定できない物なのでしょうか? ちなみに指定している方法は、デバイス名を記述し、設定されているプリンタを検索し、合うプリンタがあれば、その番号(?)を Set Printer = XXX(番号)          ↑忘れました、ごめんなさい。 と言うような形でコーディングしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.2

私は、こんな感じにしています。 Private Sub Command1_Click() Dim prt As Printer Set Prt = Printer For Each prt In Printers If prt.DeviceName = "プリンタのデバイス名" Then Set Printer = prt Exit For End If Next Printer.Print "テスト印字" Printer.EndDoc End Sub

nujiran
質問者

お礼

どうもAccessにはVB側からのSET ~ を使用しての プリンタ指定は出来ないようです。 (ACCESSのレポートで指定したプリンタが正となる?) なのでAPIを使用してプリンタの指定を行いました。 回答ありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

変数[Printer]は型[Printer]で宣言なさってますか? Printersコレクションあたりがキーワードのように思います。

nujiran
質問者

お礼

どうもAccessにはVB側からのSET ~ を使用しての プリンタ指定は出来ないようです。 (ACCESSのレポートで指定したプリンタが正となる?) なのでAPIを使用してプリンタの指定を行いました。 回答ありがとうございました。

関連するQ&A

  • プリンターを指定して印刷するには

    アクセスです。 フォームのコマンドボタンをクリックしてレポートを開きます。 VBAコードは Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1" End Sub です。 レポートが開いたら、自動で印刷されますが、 それは、通常使うプリンタに設定しているプリンタで印刷されてしまいます。 そうではなく、 Bullzip PDF PrinterでPDF化させたいのですが、 レポートのイベントで、 Private Sub Report_Open(Cancel As Integer) End Sub で、プリンタを指定することは可能でしょうか? 通常使うプリンタは Bullzip PDF Printerにはしたくないのです。 わがまま言ってごめんなさい。

  • プリンターエラーの判定

    プリンターの用紙切れやオフライン等の検出をしたいのですが、APIかなにかで出来るのでしょうか? Printerオブジェクト出力ならならON ERRORで判定は出来るみたいですが、帳票ツール(アクティブレポートOCX等)のときに判定する方法はあるのでしょうか? お解りになられる方がいらっしゃればお教え願います。 宜しくお願いいたします。

  • 帳票ツールを使わずに帳票出力が出来ますか?

    VB6を使って開発しています。 帳票ツールを使わずに帳票出力が出来ないものかと考えております。 まぁそれが出来ればツールなんて必要ないじゃないかとも思うのですが(^^; よろしくお願いします。

  • VBからACCESSのレポートへの出力に関して

    環境:Visual Basic2008 Express Ediotion,ACCESS2000 教えて下さい。 Visual Basic2008で開発を行っていますが、帳票の部分だけをACCESS2000の レポート機能を使って出力したいと考えています。 単純にACCESSのレポートを起動させる方法は、幾つかのホームページに記載が ありましたが、Visual Basicの方で作成された"データ"を用いて、ACCESS側のレポート に出力するような事をしたい為、調べた結果では手段が見つかりませんでした。 あるホームページに、データセット等を活用すれば出力できるような記載もありましたが、 細かな情報がなく、どのように記述したら良いかが記載されていなかった為、この 方法だけでなくどのようにしたら良いかの参考になるようなホームページ、あるいは ソースの記述を教えて頂きたいと思います。 よろしくお願いします。

  • access 範囲指定してレポート出力

    書類の出力をaccessで利用しています。 現状では、レポートを出力するために番号を1つ1つ指定するしかなく、 量が多いと手間なため、範囲指定してそれぞれ番号のレポートを出力することはできますか。例)番号1なら番号1用の書類、番号2なら番号2用の書類・・・・のように今回の指定だと10枚出力する形になります。 現状の指定方法:1 ↓ 理想の指定方法:1 ~ 10 書類を出力するデータはaccess2003で作成されたものです。書類に表示されるデータはリンクテーブルが元になります。 使用しているのはaccess2016になります。 よろしくお願いします。

  • ActiveReportからドットプリンタの連続紙出力

    VB6を使用して、ActiveReportからドットプリンタで送り状を出力しようとしています。 送り状は路線便業者さんが使用されているようなものをイメージしていただければと思います。 用紙の都合上、連続紙から出力したいのですが、実行するとシートガイドから出力されてしまいます。 どうやらA4と認識されてしまっているようなのですが、どこを修正したら良いのか分かりません。 コードで指定しているものは下記になります。 With Me.Printer   .PaperSize = 256   .PaperWidth = 567 * 12.5   .PaperHeight = 567 * 6.4 End With Me.PageLeftMargin = 567 * 1.3 Me.PageRightMargin = 567 * 0.5 Me.PageTopMargin = 567 * 0.4 Me.PageBottomMargin = 567 * 0.4 プリンタ側の設定としては、上記規定のサイズの用紙(Aとします)を作成しておき、 ドットプリンタのプロパティから、デバイスの設定でフロントトラクタにAをセットしています。その他は使用しないと設定しました。 しかし、プログラムを実行させてプレビュー画面でプリンタのプロパティを見ると、 用紙サイズ:A4 給紙方法:シートガイド と戻ってしまっています。このプレビュー時にプロパティをフロントトラクタと、 用紙Aに変更すると正しく連続紙で出るのですが、毎回修正しなければならないのはどうしても避けたいと思います。 分かりづらい説明で大変恐縮ですが、お知恵をお貸しいただければと思います。 よろしくお願い致します。 ドットプリンタ:NEC MultiImpact 700LX2 開発PC:DELL LATITUDE D630 (WinXPPro SP3)

  • VB6でプリンタへの出力を検出したい

    VB6で作成したアプリで、プリンタへの出力を検出したいと思っています。 作成したソフトを常駐させておき、対象とするアプリの種類を問わず、プリンタへの出力を検出したら強制的にプレビュー画面を表示させたいのです。 自分に具体的な実現方法が思いつかず、また検索しても似たような話題も見つからないので、VBでは不可能なのかと疑問に思っています。 このような開発を手掛けられた事のある方や、知識をお持ちの方がいらっしゃいましたら、ご助言いただきたいのですが、よろしくお願いいたします。 <開発環境> WinXP pro sp1 VB6.0 sp5

  • access2003 レポートごとにプリンター指定

    win XP access2003 accessで70種類のレポートを使い分けています。レポートごとに異なるプリンターを指定して印刷してます。 ページ設定でプリンターを設定できますが、レポートの種類が多いため管理が大変です。 簡単な管理法がないでしょうか? たとえば、テーブルにレポート名、プリンター名、用紙サイズ といったようにして、マクロ(VB)なんかは無理でしょうか? よろしくお願いします

  • VBのフォームにWordを取り込み、指定のプリンターへ出力したい。

    環境:Windows2000+SP3 VB6+SP5 Word2000 VBのフォームにWordを取り込んで、そこで編集したものを 指定のプリンターへ出力しようと試みております。 現在OLEコントロールを用いて試しているのですが、上手く出来ません。 OLEで取り込んでるWORDにファイルメニューがあればいいのですが 何故かありません。そもそも無理なんでしょうか…(T.T) 参考になるような情報お待ちしておりますm(_ _)m

  • プリンタの状態を知る方法

    只今、VB6のDataReportを使って帳票を作成しています。1つの雛型を使って、 複数のレポートを連続印刷しようとしていますが、DataReportとFormが非同期で あるため、DataReportがまだ帳票をプリンタに吐き出し終わっていないうちに、次の帳票を作ろうとしてしまい、エラーが出てしまいます。 色々調べて、MoveMemoryなるAPIを使ってプリンタの状態(印刷中、とかスプール中とか)を取得しようとしていますが、それもエラーがでてしまいます。 どうしたら、上手にプリンタの状態を知ることが出来るでしょうか? もしくは、非同期で動いているもの同士の同期を取るような方法がありましたら ぜひ教えてください。 よろしくお願いします。

専門家に質問してみよう