2009-04-07 30 views
0

私は過去6年間のコンティニュープロジェクトでしたので、何百ものフォームとVBAコードのthosandsラインを持っています。最近の更新の後、ADEファイルを作成するためにコンパイルすることはありません。それは、テキストボックスの1つが存在しないが、それは私に教えてくれます。 forを削除し、それを作業中のバックアップからインポートしましたが、それと同じエラーです。私はtryedしましたプロジェクト全体を新しいADPファイルにインポートしてコンパイルしてコンパイルしてコンパクトにして修復し、また逆コンパイルしてくださいAccess ADP Coruptはコンパイルされません

この問題を解決する手助けとなるものはありませんか?

答えて

2

私はのADPでは動作しませんが、MDBの中で、フォーム上のコントロールを参照するためにこれらの2つの構文の間に違いがあります

Me.MyControl 
    Me!MyControl 

最初の原因が返す隠されたプロパティを作成するためのアクセスコントロール。その結果、コンパイル時にコントロールへの参照がチェックされます。

現在のフォームのデフォルトのコレクションを使用し、コンパイル時のチェックは行いません。

私は、MDBと同じようにADPでVBAが動作すると仮定しています。なぜなら問題のコントロール参照をdotではなくbangに変換してみてください。これにより、コンパイル時のチェックが不要になり、プロジェクトを面倒なく再構築することなくコンパイルできます。

コントロールが削除されて隠れたプロパティ定義が削除され、新しい名前のコントロールが追加された後、コンパクトになると思います(ADPをデコンパイルできるかどうかわかりませんが可能であれば、それも逆コンパイルする必要があります)。理論的には、問題の隠れたプロパティ定義を永久に削除する必要があり、それが問題の原因であれば、ドット演算子に戻ってコンパイル時のチェックバックを行うことができます。

ドットオペレーターには多すぎる破損の問題があり、私のすべてのプロジェクトでは常にバングを使用しています。私はコントロール参照のコンパイル時のチェックをしていないことでOKです。

そして、ああ、BTWでは、自動Intellisense(ある状況ではIntellisenseが邪魔になることがあるため、祝福です)を失いますが、CTRL-SPACEで別のIntellisenseリストを呼び出すことができます。このリストはコントロールタイプに限定されませんが、入力を開始すると、リスト内の適切な場所にジャンプする通常のオートコンプリートを取得します。

1

新しい空のプロジェクトを開始し、古いものからすべてのフォーム/レポート/モジュールをインポートすることがあります。

+0

行い、その後

  • コンパクト/修理
  • をコンパイルします。これはmdbs:http://www.granite.ab.ca/access/corruptmdbs.htmを指します。 – Fionnuala

  • +0

    新しいデータベースにインポートすることに同意します。 – Fionnuala

    0

    birgerの手法では解決できない場合は、SaveAsTextメソッドを使用して各モジュールを保存することを検討してください。その後、birgerが示唆したように、フォーム、テーブルのみをインポートします。次に、LoadFromTextメソッドを使用して、モジュールを再作成します。

    0

    ADEファイルを作成する前に、手動でDebug -> Compileをクリックする必要があることがあります。

    これは、次の手順ではできないコンパイルADPファイルを助けるかもしれない:

    1. デバッグ - >これはたとえ、有用である可能性があるADE
    +0

    確かに、ADE/MDEを作成する前にファイルがコンパイルされるかどうかわからない状況にあってはなりません。有能な開発者は、数行ごとにコードを繰り返しコンパイルします。私の意見では、他のものはちょうどうんざりです。 –

    関連する問題