質問
accessでプリンタを切り替えるには?
- 投稿日時:2003/05/02 09:05
access2000 windows2000 です。
プリンタをネットワーク上で2台つないでいるのですが、
アクセスからマクロまたはVBAで、
プリンタを切り替えるには
どうすればいいのでしょうか?
エクセルだとそういう命令があってできるのですが、
アクセスのヘルプを見てもわかりませんでした。
よろしくお願いします。
回答 (4件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.4ベストアンサー20pt
- 回答日時:2003/05/06 19:06
僕も必要だったのでまた探していたら、簡単にできそうなのがありました。
あまり美しくないのですが、印刷ダイアログボックスを開かずに、比較的簡単にプリンタの変更ができます。
URLは以下です。
http://www.microsoft.com/japan/enable/training/k …
これをちょっと応用して、コマンドボタンのクリック時イベントに以下のように書きます。(上記Webページ3までは同じです。上記3はコピペでOKです。モジュール名はモジュール1でOKです。)
Call SetPrtDevPrt1toPrt2("ダミー", "印刷用")
DoCmd.OpenReport "印刷用", acViewPreview
要するに意味的には以下のような感じです。
Call SetPrtDevPrt1toPrt2("設定を流用したいレポート名", "印刷したいレポート名")
DoCmd.OpenReport "印刷したいレポート名", acViewPreview
これを実行すると、
「印刷したいレポート名」のレポートのプリンタ名設定が「設定を流用したいレポート名」のレポートのプリンタ名設定と同じになります。(ただし、余白設定とかも流用したいレポートと同じになってしまいますが…)で、レポートがプレビューされます。
なので、インストールしてあるプリンタの数、または余白設定の数だけ、ダミーのレポートを作れば、ダイアログを表示しなくても、VBA内でプリンタ名の設定を自由に変更できるということになります。(余白もVBAで自動指定したいときはPrtDevModeを使うしかないかもしれません。)
なお、2行目の
DoCmd.OpenReport "印刷したいレポート名", acViewPreview
は「acViewPreview」を省略すればプレビューされずに即印刷されます。
なお、書き忘れましたが、あるレポートにある特定のプリンタしか使わない場合は、こんなことしなくても、ページ設定の「通常使うプリンタ」や「その他のプリンタ」でプリンタを決め打ちできます。
この回答へのお礼
ありがとうございます。
これなら、私にもすぐにできそうです。
早速やってみます。
紹介いただいた本、見てきました。
難しいですね。
とても、立ち読みでは理解できません。
でも、これがわかれば、細かい設定もできますね。
どうも、アドバイスありがとうございました。
とても役に立ちました。
No.3
- 回答日時:2003/05/03 16:44
> 命令の中でプリンタを指定したいのですが。
Access2000の場合、一般的には Prtdevmode というのを使います。
(詳しくはヘルプを参照してください。ヘルプのサンプルは、一部、改行のアンダーバーの位置画がおかしいので、アンダーバーの前にスペースを入れると動きます。ただし、プリンタを選択するサンプルではないので、書き換えが必要です。)
2002だとPrinterオブジェクトというのがあるらしいです。
http://www.microsoft.com/japan/msdn/officedev/of …
僕はやったこと無いんですがけっこうめんどっちいらしいので、以下の書籍等を参考にしてみてください。(ドンズバではないのですが作り変えればいけると思います。)
毎日コミュニケーションズ 発行
津田 眞吾 著
「Access Professional Technique レポート&印刷」
p154~p161
最新刊ですから多くの多くの書店にあると思います。サンプルのCD-ROMデータ付です。立ち読みしてできそうだったらチャレンジしてみるといいと思います。
ではでは~
この回答へのお礼
ありがとうございました。
Prtdevmodeでプリンタの切り替えもできるんですか。
とてもややこしくて、私にはなかなか理解できそうにありません。
他に方法がなければ、何とかそれでやってみようと思います。
2002では簡単にできるようですね。
ご紹介の本、早速見に行きたいと思います。
情報をどうもありがとうごさいました。
No.2
- 回答日時:2003/05/03 00:39
もし簡単に処理したいなら、フォーム上に適当なコマンドボタンを作り、以下の2行のコードを「クリック時」イベントに書くといいと思います。コピペでいいです。レポート名だけ変えてください。
DoCmd.SelectObject acReport, "印刷したいレポート名", True
DoCmd.RunCommand acCmdPrint
コマンドボタンを押すと印刷ダイアログが出ますので、「プリンタ名」リストでプリンタを選べばいいと思います。
キャンセルした時はメッセージが出ますが「終了」を押せばいいです。
メッセージを出したくなかったら、エラー処理コードを書かないといけませんが、初心者ということですからまあ特にいいと思います。
意図することと違ってたらごめんなさい。
この回答へのお礼
ありがとうございました。
やって見ました。
できました。
これ簡単でいいですね。
とりあえず、これで行きます。
でも、できたら、命令の中でプリンタを指定したいのですが。
No.1ベストアンサー10pt
- 回答日時:2003/05/02 11:10
指定のプリンタで出力するには変数を宣言してプリンタオブジェクトに使用するプリンタ名を代入すればできます。
2台のプリンタを列挙して選択後出力することもできます。その場合プリンタを列挙しリスト化する記述と選択されたプリンタをオブジェクトに代入する記述が必要です。
Excelとそう大差なく出来ると思いますが。
または出力するレポートが必ず2台ある内の片方でのみ出力するならレポートをプレビューの状態にしてページ設定で出力するプリンタを指定して出力することが出来ます。
意図している事と違うようでしたらゴメンナさい。
この回答へのお礼
早速の回答ありがとうございました。
まだ初心者なもので、具体的にどうすればいいか
わからないのですが、もう少し、詳しく教えてもらえないでしょうか。
このQ&Aを見た人はこんなQ&Aも見ています
【電話・メール相談特集】
様々なジャンルの専門家に電話やメールで直接相談できるサービスをご紹介。一人で考えるより、あなたの【お悩み解決】や【夢の実現】に、その分野の専門家の力を役立てましょう。
このカテゴリで人気のQ&Aランキング
- 4Oracleのテーブルサイズ
- 5複数のテーブルに対してのleft join
- 6Oracleでオブジェクト権限を調べる...
- 7ファイルメーカーとアクセスのちが...
- 8Oracleの排他制御について教えてく...
- 9SQL エラー コードの一覧 について...
- 10「ORA-12154:TNS:サービス名を解決...
- 11Access VBAでクエリーのレコード件...
- 12〔VBA・マクロ〕EXCELからACCESS...
- 13ACCESS DB起動時パスワードを設定...
- 14VBAで指定範囲の整理NOを付けたい
- 15DAOとADOの違いについて
- 16正規形のメリット&デメリット
- 17ACCESS フォームをそのまま印刷につ...
- 18TPSとは・・・
- 19最大値を含むレコードの抽出
- 20Access2010でリボン等を非表示にしたい