VBで帳票印刷してメモリ不足が発生

解決


袈裟次郎  2004-09-28 03:19:05  No: 116560

VB6.0で帳票印刷でレイアウト定義をEXCELで行い、データベースから内容をセットして印刷しています。(例、高等学校の通知票)
枚数が多くなると、「メモリ不足」のメッセージが表示されてしまいます。プリンタへの印刷が遅いのでスプールファイルが多く残っていますが、これがメモリ不足と関係しているのでしょうか?
どのようにしたら解決できるでしょうか?


岡田 之仁  2004-09-28 03:51:19  No: 116561

一体そのシステム(アプリ)は、どのような環境上で動作している
のでしょうか?

OS・メモリ・EXCELのバージョン

それらが解らないと、コメントできません・・・

以上。


袈裟次郎  2004-09-29 17:53:04  No: 116562

岡田様
有難うございました。Me + 188MBのRAM + EXCEL2000 で開発していました。
実際の利用環境は98 , Me , 2000 等です。

確認していて、以下のような方法で対応しましたらOKでした。
根本的な解決方法かは疑問ですが。
(1)VBプログラムからEXCELにデータを転記しPrintOut命令で印刷。
(2)印刷枚数の割に印刷速度が遅いので、スプール・ファイルで待機している
      個数が増加。
(3)従って、1頁PrintOut命令を出した後、10秒間待機して次の処理を開始。
一応は解決したのですが。
10秒間待機するのに「VB6.0でウェイト処理をするには?」欄に載っていた
方法を利用したのですが、"kernel32" を利用していても、修正後のEXEを
入れ替えてもらうだけで問題ないのでしょうか?コントールなどのように
セットアッププログラムで"kernek32"に関する部品などをセットする必要は
ないのでしょうか?"kernel32"の機能は全パソコンに既存のものですか?


岡田 之仁  2004-09-29 19:38:25  No: 116563

kernel32の中のそのAPIを使われたのでしょうか?
大抵はOSに共通ですが、時折OS間で共通でない仕様のものが
ありますので、注意が必要です。

APIをDeclareして呼び出しておられるはずですので、EXE
のみの差し替えがOKです。

セットアップにkernel32関係を入れないで下さいネ!

尚・・・プリンタスプールは・・・
98系OSでは、メモリを優先に取得
NT系OSでは、ファイルを優先に取得
していたように思います。

よって、NT系OSの場合、遅くてもメモリ不足にはなりにくい
ですが、98系OSの場合は、すぐにメモリ不足になります。

搭載メモリ容量を増加させることをお勧めします。
最低でも256MB、欲を言えば512MB・・・

以上。


袈裟次郎  2004-10-01 02:27:31  No: 116564

岡田  様

有難う御座います。
現在、修正したプログラムを客先に送付して、確認の返事待ちです。
回答が来次第、ご報告いたします。


袈裟次郎  2004-10-04 18:16:08  No: 116565

岡田  様

納品先から連絡がきましてOKとの回答でした。
ただし、時間がかかりすぎるので、短縮できないか?とのことでした。
どうも、有難う御座いました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加