私が作成したツールを実行するためのボタンが付いた MS Access データベースがあります。ツールは機能します。Access DB は動作します。ツールを実行するための VBA が機能します。
ただし、VBA からツールを実行すると問題が発生します。XML 構成データをロードしようとすると、常にクラッシュします。エラー報告ツール (コントロール パネル -> 管理ツール -> イベント ビューア) をチェックして、これをテストしました。また、すべての XML データをハードコーディングしたツールの 2 番目のバージョンも作成しました。
これが発生する既知の理由があるかどうか、およびこのエラーを回避するための実行可能な解決策があるかどうか疑問に思っています。プロジェクト全体を再コンパイルして更新をプッシュすることなく、構成データを変更可能にする必要があるため、すべての構成データをハードコーディングすることは理想的なソリューションではありません。
情報:
- MS Access 2010 with Visual Basic for Applications (アプリケーションの呼び出しにシェルを使用)
- 参照を使用した XML 構成データを使用する C# アプリケーション (IO、Linq、Xml.Linq、Data.OleDb、グローバリゼーション)
ご提供いただけるご支援に感謝いたします。
リクエストごとに、アプリケーションを実行するために使用するコードは次のとおりです。
Dim hProcess As Long
Dim myPath As String
dim myFile As String
myPath = Environ("ProgramFiles(x86)" & "\mytool\"
myFile = "mytool.exe"
hProcess = Shell( myPath & myFile, vbNormalFocus )
このアプリケーションは、ユーザーが csv 内の列名をアクセス中のフィールドにマップできるようにする WinForms アプリケーションです。唯一の実際の問題は、XML 構成データをロードしようとする部分です。
XDocument xDoc = XDocument.Load(Environment.CurrentDirectory + "\\config.xml");
繰り返しますが、構成データをアプリケーション自体にハードコーディングしても、アプリケーションの実行時にまったく問題はありません。ただし、XML 構成データを読み込もうとすると、XML ファイルの読み込み中に未処理の例外が発生したことを示すエラー イベントがイベント ビューアに表示されます。VBA シェル呼び出しの外でアプリケーションを実行すると、問題なく動作し、XML ファイルをロードできます。VBA シェルから XML を読み込もうとしたときにのみクラッシュします。