スケジュール実行されている時のエラー表示方法

解決


けろけろ  2005-07-05 04:10:51  No: 90816

DBのデータを抽出・加工してファイルを作成するプログラムがあります。
フォーム上に進捗状況を表示し、エラーが発生した場合MsgBox表示しています。
これをスケジュールされたタスクとしても実行したいのですが、ログインして
いない状態で実行された場合フォーム等表示されないようなので、エラー通知
方法をどうすればよいか悩んでいます。

・未ログインの状態でタスク開始→エラー発生→その後ログインした場合に、
エラーメッセージを表示させるようなことはできるのでしょうか?

・(それがダメなら)普通?に実行されている場合はMsgBox、未ログインの
状態で実行(画面なし)の場合はイベントログ出力、というように切り分ける
ことは可能でしょうか?

なにかヒントだけでもいただけるとありがたいです。


魔界の仮面弁士  2005-07-05 04:40:49  No: 90817

VB6かな?

もし VB6 であれば、スケジュールで動作させるアプリの場合には、
App.UnattendedApp を False にしておくのが一般的かと思います。
プロジェクトのプロパティで、『対話型インターフェイスの抑制』に
チェックを入れてコンパイルしておけば、MsgBoxによる出力が、
イベントログへの出力に自動で切り替わります。

もし、ログインしているかどうかによって出力先の切り替えが必要なら、
通常時は MsgBox、スケジュール動作では App.LogEvent メソッドで
ログ出力するような設計にされてはいかがでしょうか。


魔界の仮面弁士  2005-07-05 04:45:38  No: 90818

> App.UnattendedApp を False にしておくのが一般的かと思います。
すみません、逆です。(^^; True が一般的ですね。
http://www.microsoft.com/japan/developer/library/vb98/vbproUnattendedAppProperty.htm

サーバーアプリのように、MsgBoxを出せないような場面で使われる設定です。


けろけろ  2005-07-05 05:29:05  No: 90819

魔界の仮面弁士様、レスありがとうございます。

あい、VB6です。
手動で実行するものとして作っていたら、いきなりスケジュール実行の
話がわいてでてオロオロしておりました。

まずは要件・設計を整理して、情報いただいたようにUnattendedApp
設定するなり、出力先を切り替えるなり(とりあえずは進捗フォームの
Visibleで判断できそうでした)検討したいと思います。

ありがとうございました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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