1

Access データベースにアクセスする .NET アプリケーションを開発しました。その Access データベースには、データベースからの情報を使用して PDF ファイルを生成するマクロがいくつかあります。アプリケーションは開発環境 (Visual Studio 2010) では完璧に動作しますが、IIS で公開して実行すると、次のエラーが表示されます。

'|1' マクロ アクションは、無効モードの場合、または埋め込みマクロから呼び出された場合、指定された '|2' 引数を使用して実行できません。

データベースは信頼できる場所に属しており、マクロが有効になっていることに言及したいと思います。実際、開発環境から呼び出すのと同じです。何でも参考になります!

4

1 に答える 1

0

サーバー側のインストールには、Access データベースにアクセスできるようにすべての Office コンポーネントがインストールされていると仮定します。そうでない場合は、サーバーに Access/Office または少なくともいくつかのドライバーをインストールする必要があります。これが良い考えかどうかというトピックについては、意見を留保します。

スクリプト タスク内で、SSIS の下の Access データベースでマクロを実行すると、この問題が発生しました。

  • タスクは、開発環境のデスクトップで実行されます
  • 開発環境のサーバー上で実行されます
  • サーバーにリモート接続されている間に実行されるスケジュールされたジョブとしてサーバー上で実行されます
  • リモートで開始されたスケジュールされたジョブとしてサーバー上で実行されますが、サーバー上でリモートデスクトップを開いている間のみです

最終的に、HKEY_USERS の下にあるサーバーのレジストリのすべてのエントリを調べて、Software\Microsoft\Office\14.0\Access\Security を探しました。

VBAWarnings のエントリを持たないエントリがいくつかありました。そのような場合、DWORD VBAWarnings を作成して 1 に設定しました。これで問題が解決したようです。

私の結論は、Access がスケジュールされたタスクを介して実行される場合、Access はわずかに異なる配置で実行されるということです。

これが実際には同じ問題であり、これで問題が解決することを願っています。

于 2015-10-09T15:05:51.880 に答える