2009-03-05 17 views
1

ExcelとAccessをベースにしたVBAプロジェクトを作成しました。他のコンピュータにコピーすると、いくつかのメソッド(左、右など)またはコントロール(ComboBox)が無効になることがあります。私はそのコンピュータで再構築しなければならなかった。しかし時々それはOKです。どうして?ライセンス問題のためですか?他のコンピュータでVBAプロジェクトが失敗するのはなぜですか?

+0

...誰が助けることができるように与えられた –

+0

十分でない情報。 –

答えて

1

ライセンスが必要なためです。さまざまな要因が考えられますが、私はそれを徹底的に打ち破ることができます:複数のコンピュータでのOffice SPのバージョンの違いによって、頭痛を与える可能性があります。また、それぞれのOffice Webコンポーネントのバージョンも確認してください。あなたのオプション& Officeのアドインはあなたにいくつかの手がかりを与えるかもしれません。

+0

Office Webコンポーネントはどのような接続をMS Accessに持たせますか?これは私にとって典型的な参照問題のように聞こえる。 –

+0

直接接続はありませんが、彼はVB APP内でOWCを使用しているようです。おそらく彼はクライアントのシナリオから彼の問題が跳ね返っているように見えるでしょう。 – Codex73

2

VBAエディタのツール/リファレンスメニュー項目で、エラーが発生しているコンピュータの参照を確認します。異なるプラットフォームには異なるDLLセットがインストールされている可能性があります。「MISSING」と表示されているリファレンスがある場合は、Excelから誤解を招くようなエラーが表示されます。

この

は、あなたが問題を抱えているコンピュータのセキュリティとアクセス許可を確認することが重要である in this question

1

を議論しています。ユーザーは、フロントエンドとバックエンドの両方のフォルダに対して完全な権限を持っている必要があります。セキュリティ設定で許可されていない場合、マクロは実行されません。あなたは読みたいことがあります。ほとんどの部分について

Self certification and digital signatures

General information on security principals for Office code and macro security

Trusted location defaults for Office 2003

Macro security in Office 2003

、あなたには、いくつかの珍しいを持っていない限り、VBAで参照して問題を解決します遅延バインディング参照。ほとんどの問題は、レイトバインディングで克服できるライブラリのバージョンの違いによって発生します。 VBAでは、早期バインディングで開発することをお勧めしますが、レイトバインディングでリリースすることをお勧めします。レイトバインディングの主な欠点は、組み込み定数を値に変更することです(スピードはもはや従来の問題ではなくなりました)。

+0

レイトバインディングの唯一の例外は、レイトバインディングでは使用できない埋め込みコントロールを使用している場合です。これは、多くの開発者がAccessで非ネイティブコントロールを避ける理由の1つです。 –

2

これはバージョンの違い/欠落参照の問題です。 場合によっては、正しい関数とまったく関係のない関数でエラーが発生することがあります。

異なるバージョンのExcelに展開する場合は、この問題を解決するためにアーリーバインディングの代わりに遅延バインディングを使用できます。あなたが開発しているとき、あなたは

Dim x As Excel.Application 
x = New Excel.Application 

ようなものを使用することができますが、展開のために、あなたは次のように変更して、完全に参照を削除することができます。それは、機械内部に住んゴブリンでなければなりません

Dim x As Object 
x = CreateObject("Excel.Application") 
関連する問題