2009-08-19 10 views
0

私は、ACCDE機能の組み込みを使用して、SQL Server 2008バックエンドとインターフェイスするスタンドアロンアプリケーションを作成しようとしています。 Make ACCDEを実行すると、あまりにも多くのTableID参照が使用されているというエラーが表示されます(制限は約2048であると記載されています)。Access 2007 accdbをaccdeにコンパイル

試行錯誤(コンパイルするまでのフォームの削除)では、どのフォームが問題を引き起こしているのかを発見しました。フォームからすべてのVBAコードを削除するとコンパイルされるようです。

これまでにこの問題に遭遇したことがあるのか​​、それを引き起こす特定の問題があるのでしょうか?私はこの問題を数回実行しました。エラーの原因を見つけるためにコードの半分を削除するのは本当の苦痛です。

答えて

3

、あなたは良いコーディングプラクティスに従うことを確認する必要があります、VBEオプションで

  1. をON DEMANDでCOMPILEをオフにして、変数の宣言がオンになっているREQUIRE(これは、新しいモジュールの原因となりますことを確認してくださいデフォルトではOPTION EXPLICITで作成されます)。

  2. VBEのツールバーにコンパイルボタンを追加すると、簡単にアクセスできます。コーディング時には、数行のコードごとにコンパイルボタンを押します(コンパイル後にSAVEします)。これにより、コンパイル不可能なコード行を書きたくないので、コンパイル可能に修正するのが簡単になります。

  3. 定期的にデータベースのバックアップを作成し、逆コンパイルして再コンパイルしてください。コンパイルされたpコード(コンパイルされたpコードを全て解凍し、正規のコードテキストのみを残す)に蓄積された粗悪なものはすべて除去され、以前は破損したpコードによって隠されていたコンパイルエラーを洗い流すことができます。

これらのベストプラクティスに従うことで、ほとんどコードが破損することはありません。

+0

コンパイルボタンをVBエディタにどのように追加しますか?私は見て、それはツールバーのいずれかに存在するようには思われません - ちょうどデバッグメニューです。 – Rister

+0

ツールバーを右クリックし、[カスタマイズ]を選択します。コマンドのダイアログで、DEBUGメニューを選択し、右側にCOMPILEボタンが表示されるまで下にスクロールします。次に、そのボタンをドラッグして、ツールバーにドロップします。私はいつも右端に置いています。ブレークモードでのトラブルシューティングの際にナビゲートするのが好きなので、CALL STACKボタン(VIEWメニューの下にあります)を追加します。 –

0

私はときどき同様のエラーを見たことがあります。すべてのオブジェクトを新しいACCDBにインポートすることをお勧めします。コンパクト&修復では、表と索引のクリーンアップのみが行われ、他のオブジェクトの破損診断やクリーンアップにはあまり効果がありません。

特定のフォームに分離されている場合は、コピーしてフォームに貼り付けてください。 Accessのフォームのクリーンコピーを保存するには、これで十分です。

次回この問題が発生した場合は、番号を含むエラーメッセージを正確に記録し、granite.ab.caのtonyにメールしてください。私はこれがAccess 2007固有のメッセージであると思われるので、私の破損Webページのこのようなエラーのリストにこれを追加したいと思います。将来のコーディングのために

+0

@Tony関連するエラー番号はありません。それは単に一般的なエラーテキストを提供します。私はそれ以来、問題を修正しており、それはVBコードのいくつかの不足しているリソースへの参照によって引き起こされたようです。私がそれを追跡する唯一の方法は、すべてを削除し、アプローチを打ち破るまで物を追加することでした。 – Rister

+0

実際に見つからなかった参照や、もはや存在しないものを指し示していたコードで壊れているものを意味しますか?前者の場合、TOOLSメニューのREFERENCESリストをチェックすると、欠落しているものが明らかになります。後者の場合、コンパイル(デコンパイル後)は、問題の原因となっているコードの行を正確にフラッシュしてください。私は、参照の数を最小限に抑え、可能であれば、レイトバインディングを使用しようとします。 –

+0

リスター、私はTableID参照メッセージを探していました。通常、それはあなたのコードをコンパイルしていない兆候ですが、あなたはそれが解決されているのを見ます。VBコードでリソースが不足しているということはどういう意味ですか? –

関連する問題