1

データソースとしてSQL2000を使用するAccess2003ADPファイルを継承しました。これは私の最初のアクセス保守プロジェクトであり、関連する問題について考えずに、開発マシンのアクセス2007で開いただけです。もちろんうまくいき、私は要求された仕事を続けました。

私は作業を完了し、ファイルをクライアントに提示しました。クライアントはAccess 2003で開き、いくつかのエラーを受け取ります。これらはすべて、変数が宣言されていないことに関連しています。この時点で、どのコードファイルにもOptionExplicitが設定されていないことに気付きました。アクセス2007でプロジェクトをもう一度見ます-エラーはありません。アクセス2007はOptionExplicitの欠如を尊重し、期待どおりに機能しているように動作しますが、access 2003は、コードファイルに表示されない場合でも、OptionExplicitが設定されていると「考えます」。

アクセス2003だけを使用して作業をやり直すことができると思いますが、それは私が望むよりも時間がかかります。

4

3 に答える 3

0

私もこの問題を抱えていました。SQL バックエンドに接続する Access 2003 フロント エンドの開発に 2 年間携わっています。Access 2007 を使い始めたのは、2003 形式で保存するだけで十分だと思っていたからです。

そうではありません。まだ 2003 を使用しているすべてのユーザーが問題を報告しました。

問題は最終的に簡単に解決できました。私は実際には 2007 の機能をまったく使用していなかったので、変更されたのはライブラリ参照だけでした。2007 年にデータベースを開くだけで自動的に含まれていた Word および Excel 12.0 ライブラリへの参照が 2 つありませんでした。

それらの参照を取り除き、以前のバージョンに戻すことなくデータベースを「修正」することができました。

于 2010-06-22T04:39:48.503 に答える
0

奇妙な問題 - Access 2003 が Option Explicit なしで明示的な変数宣言をチェックする方法がわかりません。何か他のことが起こっているに違いありません。

Access 2003 を使用しているマシンで動作を再現できますか?

実際に変数を宣言するのはどうですか?関係なく Option Explicit を設定する必要があります。

アップデート:

目標は Access 2003 mdb (2007 から保存) を動作させることです。もう1つ試してみます。

Access 2003 を使用して、/decompile スイッチを使用して mdb を開きます

  • mdb のバックアップを作成する
  • msaccess.exe database.mdb /decompile のショートカットで mdb を開きます (コードの実行を停止するには Shift キーを押したままにします)。
  • モジュールを開いてアプリをコンパイルする
  • 保存して Access を閉じます
  • 逆コンパイルせずに再度開く(SHIFTを再度)
  • データベースの圧縮と修復
  • 閉じる アクセス
于 2009-04-15T18:29:03.717 に答える
0

これはあまり役に立ちませんが、クライアントの 1 人が Office 2007 に切り替えたときに、2007 年に 2003 データベースで作業してから 2003 年に実行しようとしてはいけないとすぐにわかりました。2007 年に開発してから変換する2003年までも機能しません。2003 年に開発し、2007 年に (変換なしで) 2003 db を実行すると、かなりうまくいきます。ほとんどの時間。

質問の 2 番目の部分に対する可能な回答: 1. 2007 db を 2003 形式に変換します。2. 2003 で新しい空のデータベースを開きます。 3. 変換された 2003 データベースからすべてのオブジェクトをインポートします。再コンパイルして、クライアントのマシンで試してください。

于 2009-04-15T18:45:11.460 に答える