VB6.0で帳票印刷でレイアウト定義をEXCELで行い、データベースから内容をセットして印刷しています。(例、高等学校の通知票)
枚数が多くなると、「メモリ不足」のメッセージが表示されてしまいます。プリンタへの印刷が遅いのでスプールファイルが多く残っていますが、これがメモリ不足と関係しているのでしょうか?
どのようにしたら解決できるでしょうか?
一体そのシステム(アプリ)は、どのような環境上で動作している
のでしょうか?
OS・メモリ・EXCELのバージョン
それらが解らないと、コメントできません・・・
以上。
岡田様
有難うございました。Me + 188MBのRAM + EXCEL2000 で開発していました。
実際の利用環境は98 , Me , 2000 等です。
確認していて、以下のような方法で対応しましたらOKでした。
根本的な解決方法かは疑問ですが。
(1)VBプログラムからEXCELにデータを転記しPrintOut命令で印刷。
(2)印刷枚数の割に印刷速度が遅いので、スプール・ファイルで待機している
個数が増加。
(3)従って、1頁PrintOut命令を出した後、10秒間待機して次の処理を開始。
一応は解決したのですが。
10秒間待機するのに「VB6.0でウェイト処理をするには?」欄に載っていた
方法を利用したのですが、"kernel32" を利用していても、修正後のEXEを
入れ替えてもらうだけで問題ないのでしょうか?コントールなどのように
セットアッププログラムで"kernek32"に関する部品などをセットする必要は
ないのでしょうか?"kernel32"の機能は全パソコンに既存のものですか?
kernel32の中のそのAPIを使われたのでしょうか?
大抵はOSに共通ですが、時折OS間で共通でない仕様のものが
ありますので、注意が必要です。
APIをDeclareして呼び出しておられるはずですので、EXE
のみの差し替えがOKです。
セットアップにkernel32関係を入れないで下さいネ!
尚・・・プリンタスプールは・・・
98系OSでは、メモリを優先に取得
NT系OSでは、ファイルを優先に取得
していたように思います。
よって、NT系OSの場合、遅くてもメモリ不足にはなりにくい
ですが、98系OSの場合は、すぐにメモリ不足になります。
搭載メモリ容量を増加させることをお勧めします。
最低でも256MB、欲を言えば512MB・・・
以上。
岡田 様
有難う御座います。
現在、修正したプログラムを客先に送付して、確認の返事待ちです。
回答が来次第、ご報告いたします。
岡田 様
納品先から連絡がきましてOKとの回答でした。
ただし、時間がかかりすぎるので、短縮できないか?とのことでした。
どうも、有難う御座いました。
ツイート | ![]() |