DOBON.NET DOBON.NETプログラミング掲示板過去ログ

OpenAccessProjectで開いたアプリケーションのエラー取得

環境/言語:[WindowsXP Pro/VB.net/.NET Framework1.1]
分類:[.NET]

いつもお世話になってます。

.netでAccessのadpファイルを開き、接続文字列を変更するアプリケーションを
作成しています。adpファイルは数十個あり、一個一個手動で変更するのは大変なので
まとめて変換したいというのがソフトの趣旨です。

何個かのadpファイルは、何の問題もなく変換出来たのですが、全体の3割にあたる
adpファイルがファイルを開いた際に、Access側でエラーがでます。エラーが出た場合は
「終了」をクリックして、Accessを閉じれば、変換はちゃんとされます。

ここで私がやりたいのは、「Accessのエラーが発生した場合は、自動的にAccessを終了させる」ということをやりたいのです。
最初は、.net側でOn Errorでエラーが発生したらAccessを終了させようとしたのですが、
Accessでエラーが発生したら、.netはAccessが終了するまでadpファイルを開いたところで止まってしまいます。

何か良い方法はありますでしょうか?
ご教授のほど、お願いします。
『OpenAccessProjectで開いたアプリケーションのエラー取得』という件名だけ見ると、 COMException をトラップして HRESULT ( ErrorCode プロパティ ) を取得すれば良いように思えますが‥‥どうも違うようですね。


> 何個かのadpファイルは、何の問題もなく変換出来たのですが、全体の3割にあたる
> adpファイルがファイルを開いた際に、Access側でエラーがでます。エラーが出た場合は
> 「終了」をクリックして、Accessを閉じれば、変換はちゃんとされます。

 この操作がどういったものなのか今一つ解らないのですけど、 Access 側でエラー メッセージが表示されるといった類のものなのでしょうか?

> ここで私がやりたいのは、「Accessのエラーが発生した場合は、自動的にAccessを終了させる」ということをやりたいのです。

 もしダイアログ操作を自動化したいということであれば、そのウィンドウのハンドルを取得して〜ボタン クリックのメッセージを投げるとか。
#これで何とかなるとしても、エラーの原因を特定して他の解決策を求めたほうが良いような。
ご返信ありがとうございます。遅くなりましてすいません。

>>何個かのadpファイルは、何の問題もなく変換出来たのですが、全体の3割にあたる
>>adpファイルがファイルを開いた際に、Access側でエラーがでます。エラーが出た場合は
>>「終了」をクリックして、Accessを閉じれば、変換はちゃんとされます。
>
>  この操作がどういったものなのか今一つ解らないのですけど、 Access 側でエラー メッセージが表示されるといった類のものなのでしょうか?

わかりにくい説明で申し訳ありません。ようは、adpファイルの接続文字列を変換する際に
一部のadpファイルがAccess側でエラーが出るのです。しかも、エラートラップを仕込んでも
.net側のエラーではないので、エラーを検出できません。Accessにフックをかけようと
したのですが、Accessでエラーが出ている間は、.netのプログラムが一時停止してしまうため、
お手上げ状態です。

>  もしダイアログ操作を自動化したいということであれば、そのウィンドウのハンドルを取得して〜ボタン クリックのメッセージを投げるとか。

これができたら最高なんですけど、プログラムが一時停止してしまうので・・・


> #これで何とかなるとしても、エラーの原因を特定して他の解決策を求めたほうが良いような。

adpファイルは、他の部署で作られており、こちらから手を加えることができないのです。修正の要望を出したのですが、未だに解答がありません。

やっぱり無理なんでしょうか??
> ご返信ありがとうございます。遅くなりましてすいません。

 お気になさらずに。掲示板でのやり取りですから数日間のタイムラグはあるものだと思ってます。一週間とか空くと流石にちょっと‥‥ですけど、これくらいなら十分許容範囲ですよ(^^)
#仮令一週間以上経ってたとしても、年の瀬であることを考えれば已むなしだと思いますけどね。


>> もしダイアログ操作を自動化したいということであれば、そのウィンドウのハンドルを取得して〜ボタン クリックのメッセージを投げるとか。
> これができたら最高なんですけど、プログラムが一時停止してしまうので・・・

 エラーが発生する処理の前で別スレッドを立ち挙げておくなり、タイマーを起動しておくなりしてダイアログの監視をするようにすれば大丈夫かなぁ、と安易に考えたのですけど駄目ですか(ーー;)
 そうするとお役には立てないようですm(__)m


‥‥あれ?
> 修正の要望を出したのですが、未だに解答がありません。
ということはエラーの原因は判明しているのでしょうか?
 もし特定されてるのであれば、その条件を提示されては如何でしょう? どなたか対策を考えて下さるかも知れません。
#比較的容易に再現できる内容であれば(私も含め)他の人も試せるようになりますし。<ってその前に解決してそう(^_^;)
アドバイスありがとうございます。

今、冬休みで実家に帰っているので、ちょっと実験ができないんですけど、
冬休みがあけてから色々とチャレンジしてみます(^^)

また行き詰ったらご相談させていただきますので、その時はよろしくお願いします。
解決しました!
新しくスレッドを立てて、そこでAccessを監視するようにしました。

深山さんには大変お世話になりました。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板