次の方法で共有

「印刷部数の指定」と「アップデート」

Anonymous
2012-09-21T02:36:15+00:00

こちらに質問を投稿するのは初めてです。

どうぞ宜しくお願い致します。

仕事で商品に貼付するシールの印字・管理をAccess2007で行っています。

商品の出荷本数に合わせて印字枚数が変化しますので、担当者がその都度

フォームから印刷部数を指定して、印刷を行います。

印刷内容の検索等はそのフォームのモジュールで行っていますが、

印刷実行用モジュールは「標準モジュール」に置いています。

(他のフォームからの印字の際にも対応させたいため)

ネット上で見つけた「プリンタを指定する方法」を行ってシール専用プリンタに切り替え、

印刷部数を指定し、レポートを印刷しています。

     Set Application.Printer = Application.Printers("AAA") ''''''''''''''''''プリンタの情報を設定

     DoCmd.OpenReport BBB, acViewDesign, , , acHidden ''''''''''''レポートを非表示で開く

     Reports(BBB).Printer.Copies = 指示枚数 '''''''''''''''''''''''''''''''''''''''''''''印刷部数を設定

     DoCmd.OpenReport BBB

※AAA=プリンタ名、BBB=レポート名

※実際には、余白の指定なども同時の行ってから印字しています

※前後の部分も省略してあります

上記のモジュールは特に問題無く動いているのですが、Access2007がアップデートされると

印刷指示枚数が何枚であろうと、1枚しか印字されない状態に陥ります。

Do~Loopで部数分だけループ処理したもあるのですが、印刷枚数が数百枚に及ぶことも多く、

「印刷時間が長くなった」と担当者から不評で、元に戻した経緯もあります。

そこで質問です。

印刷部数の指定がアップデートで上手くいかなくなるのは、構文上の問題でしょうか?

また、

部数指定(出来れば余白指定も)が出来る他の方法はあるのでしょうか?

印刷のダイアログボックスが開く、といった方法は好ましくありません。

担当者にPCに不慣れな者が多く、「変な画面が開いた」と騒がれるからです(笑)。

現在は、Access2007を再インストールで初期状態に戻し、その端末だけは

自動更新出来ないように、インターネットにつながらないように設定してあります。

ただ「更新出来ない」というのは、あまりよい事ではないように感じますし、

何よりインターネットが使えないこと自体も、担当者達から不評です。

何か解決策がございましたら、ご教授願います。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-09-24T13:27:27+00:00

    hatena19様、ご回答有難うございます。

    連休+社用パソコンの件につき、返信が遅くなり申しわけございませんでした。

    さらに言えば、ご提案頂いた内容の検証も、今週末に手をつけれるかどうか、

    といったところもご理解頂ければ、と思っています。

    余白の件は確認していませんでした。

    部数指定が上手くいかない事だけが気になっていました。

    検証してみたい部分ですね。

    Docmd.PrinOutも試した気がするのですが、自信はありません。

    ご指摘の通り、非表示で実行出来なかったのかもしれません。

    そこに、Echoか!

    目からウロコの思いです!

    結構イケそうな気がしています(実証していませんが…)。

    週末に確認してみたいと思います。

    その結果をご一報出来れば、と思っています。

    有難うございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-09-21T06:36:43+00:00

    Access2007がアップデートされた場合、余白の設定も無視されるのでしょうか。

    余白の設定が有効なら、部数は、Docmd.PrintOut で指定して印刷してはどうでしょうか。

    ただし、非表示のままでは、印刷できないかもしれないので、下記のように画面更新を抑制することになるかも。

    DoCmd.Echo False

    DoCmd.OpenReport BBB, acViewPreView

    With Reports(BBB).Printer

    '余白等の設定

    End With

    Docmd.PrintOut acPrintAll, , , , 指示枚数

    DoCmd.Close acReport, BBB

    DoCmd.Echo True

    実際に試していないので、ダメかもしれませんが。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません