1

MS Accessのパブリック関数で、シェル呼び出しを使用してjavaxsltモジュールを実行します。

Set shell = CreateObject("WScript.Shell")
cmd = "java -jar D:\saxon9he.jar -s:D:\input.xml -xsl:D:\transf.xslt -o:D:\output.xml"
Set objExecObject = shell.Exec(cmd)

次のエラーが発生しました。

VBAJava呼び出しエラー

別のMSAccessインスタンスでもまったく同じことがうまく機能したので、どこかで環境変数を参照する必要があると思います(これらの1つはJAVA_HOMEに設定されていますC:\Program Files\Java\jdk1.5.0_16\bin)。
しかし、MS Accessのどこでその参照を設定できますか?
それとも、このエラーは他の原因によるものですか?
たとえば、MS Access / VBAが環境変数PATHにアクセスする際に問題が発生する可能性がありますUSERSYSTEMPATH私のセットアップでは、java.exeの場所に関する情報を保持するのはユーザー環境パラメーターです。

4

1 に答える 1

1

次のように実行するコマンドに何かを追加しました。

Set shell = CreateObject("WScript.Shell")
Dim JavaHome As String
JavaHome = shell.Environment("USER")("JAVA_HOME") & "\"
cmd = JavaHome & "java -jar D:\saxon9he.jar -s:D:\input.xml -xsl:D:\transf.xslt -o:D:\output.xml"
Set objExecObject = shell.Exec(cmd)

java.exeへのパスを自分で指定するので、これは正常に機能します。

しかし、なぜ突然のMSA / VBAがPATHユーザー環境(;%JAVA_HOME%;を含む)からパラメーターを適用できなくなったのか疑問に思います...

その質問のために別のスレッドを作成します...

于 2012-06-04T20:25:04.710 に答える