タイトル : Re^5: ACCESS未インストール環境でのレポート印刷について 投稿日 : 2014/07/09(Wed) 01:25 投稿者 : 魔界の仮面弁士
> processId = Shell("C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE C:\PG\SY.mdb", vbNormalFocus) ←※1 その書き方だと、"C:\Program" というアプリに対して、引数として "Files\Microsoft" と "Office\OFFICE11\MSACCESS.EXE" と "C:\PG\SY.mdb" を 引き渡しているかのように解釈されてしまう恐れがあります。 (ある程度は自動判断されますが、C:\Program.exe や C:\Program.bat があると誤動作します) 空白を含むパスは ・パスの両端を「"」で囲む ・ロングファイルネームではなく、8+3のショートファイルネームで指定する のいずれかの対策を取るようにしておくのが無難です。 先に紹介した URL (KB147816)では、それに対する対策も施されていますので、 "Using a Run-Time Application" の項を再度確認してみて下さい。 それと、/runtime オプションも付与しておいた方が良いかと思います。 このオプションが無くとも、実行環境での差は無いはずですが、 Access 製品版が入っている環境で /runtime モードを指定すると、 ランタイムのみの環境と同じモードで動作するため、事前検証の役に立ちます。 > ac = GetObject(, "MSACCESS.EXE") ←※2 『Set』キーワードが抜けています。また、肝心のパラメータ指定にも問題があります。 Set ac = GetObject("C:\PG\SY.mdb") に置き換えたうえで、 前回の回答にある KB147816 を再度確認してみて下さい。 |