dポイントプレゼントキャンペーン実施中!

宜しくお願いいたします。
現在ネットワークで共有しているファイルサーバ上のmdbで配送伝票出力の作業をしています。
今までは1クライアントのみで使用していたのですが今後、多クライアントでも作業する事になりました。
質問はレポートのプリンター設定が、他のクライアントを使用すると崩れてしまうのを避ける方法をご教示頂きたいのです。
これはAccessの脆弱な部分でWebを調べると様々なご意見が書かれていますが、どれを実行していいのか、どれがBESTなのかも分かりません。
私が困っているのは「余白」「プリンタの機種(その他のプリンタ)」「用紙サイズ」「給紙方法」の4つの設定が変わってしまうので、毎回立ち上げ時に設定が行えるといいのかなと思っています。
ドットプリンタ出力なので、クライアントは通常使うプリンタに殆ど指定されていません。
クライアントOSは皆XP、サーバはNTサーバです。
宜しくお願いいたします。

A 回答 (3件)

[イミディエイト]


自動 請求書 (VL1004D 上)
189
TopMargin=250

Private Sub コマンド0_Click()
  Dim prt As Access.Printer
  Dim strDeviceName As String
  
  DoCmd.OpenReport "item", acPreview
  strDeviceName = Reports("item").Printer.DeviceName
  Reports("item").Printer.TopMargin = 250

  Debug.Print Reports("item").Printer.PaperSize
  Debug.Print strDeviceName
  Debug.Print "TopMargin=" & Reports("item").Printer.TopMargin
  
  For Each prt In Application.Printers
    If strDeviceName = prt.DeviceName Then
      MsgBox "DeviceName =" & strDeviceName
    End If
  Next
End Sub


Printer オブジェクトとPrinbtersコレクションを使うのも手です。

  Reports("item").Printer.TopMargin = 240

このように、TopMargin も設定できます。
ですから、印刷プレビュー時にプリンタの設定を行えば色んな不具合は回避できるかと思います。

<<プリンタ名=納品書、請求書、配送伝票にしておけば・・・>>

しかし、そもそも各端末で’配送伝票’なるプリンタ名を用意しておけば事足りるかと思います。
Access側では、常に’配送伝票’を使えば不具合は発生しないです。
Printer オブジェクトを使って逐一制御するかどうかは好みの問題。

ところで、制御値は2つ用意しないと全ての機種に対応できません。
このように制御値が混在する限りで各端末のデバイス名を取得し値を調節します。
通常、2タイプの調節しかありませんので’配送伝票1’と’配送伝票2’を用意して対応することも可。
先の回答は、この最後の1行についてのものです。
が、制御値が混在していなければ、プリンタ名を納品書、請求書、配送伝票にしておけば・・・。
と、思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
TopMargin の設定も含めて具体的なコードを頂き
感謝しております。
さっそく参考にさせて頂きます!

お礼日時:2008/12/12 08:54

しまった!訂正です。



バックエンドとフロントエンドではないですね。
だとすると、各クライアント情報はサーバー。
で、後は、同じです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
でもプリンタを選ばせる「設定」画面の
出し方が分かりません。
具体的なコードが分かれば教えていただきたいのですが・・

お礼日時:2008/11/24 20:59

ドットプリンタ別に帳票レイアウトをするのは一番簡単です。


具体的には、[各種設定]などのメニューを用意しプリンタを選ばせます。
出力の際には、その設定に応じて帳票を出力します。
このやり方で、今のところですがエプソンとNECの機種で対応不可はありません。
もちろん、富士通とか沖電気でも対応できています。
なお、プリンタ名だけはリネームしてもらっています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!