0

従業員のマスター データベース (dbEMP) からエクスポートされた 2 つのテーブルから従業員情報にアクセスする必要があるデータベース (dbW、これを dbW と呼びます) があります。したがって、非機密情報 (Clock#、FirstName、LastName、Foreman、HireDate、Shift) を .dbf ファイルのペアとしてエクスポートします。" employee.dbf " および " FRM.dbf "

最近まで、HireDate はエクスポートされませんでした。HireDate を含めるために " employee2.dbf "を作成するために dbEMP からエクスポートする 3 番目のエクスポート クエリを作成しました。元のクエリは " employee.dbf "と呼ばれていました。(なぜ?ここには立ち入らない理由で)

現在、私の dbW フロントエンドには、すでに「employee.dbf」を参照しているコードがたくさんあります。それで、私のちょっとした天才 (またはそうでしたか?) のおかげで、これら 2 つのリンク テーブルの名前を「employeeOLD 変更することにしまし。 dbf "、および HireDate の追加フィールドが含まれています。

ワークステーションで実行してテストします。それはすべてうまくいきます。コードを再構築したり、検索/置換を行ったりする必要はありませんでした。正しいテーブルを参照して機能するだけです。

ランタイムのコピーをそれを実行している従業員の 1 人に送信しましたが、壊れています。ランタイム エラー 3061。通常は、フィールド名のスペルが間違っているか、フィールドが欠落しています。しかし、それは私のPCでは機能したので、何が問題なのですか?

多くの変更を行った後、VBA で msgbox が中断され、コードまたは即時ウィンドウにアクセスできない PC のランタイム バージョンでプロセスがどこにあるかを知ることができ、最終的にそれを理解しました。コードは「employee」という名前のテーブルを見ていると言っていますが、実際にはリンクされたテーブルemployee.dbf」を見ており、私のプログラムでは「employeeOLD」に名前が変更されています。リンクテーブルemployee.dbf 」のデータを参照するには、「 employeeOLD」を参照する必要があると考えましたファイルの名前を既にコードに含まれていたものに変更するという私の天才的な動きがフルバージョンで機能したとしても、「employee2」を参照するようにすべて再プログラムする必要がありました (これは表示されません)リンクされたテーブルのファイル名を見ない限り、左側のテーブル リストで) ランタイム バージョンが機能するようにします。

最後に、dbEMP に戻り、従業員の両方のバージョンをエクスポートしなくなり、HireDate フィールドを含む" employee.dbf " のみをエクスポートし、employee2 テーブルへのリンクを削除しました。Access のテーブル名は同じですファイルサーバー上のテーブル名として(もちろん.dbfを差し引いて)

したがって、私の問題は自己解決していますが、これを投稿して、他の誰かがこの問題に遭遇したかどうか、または問題を再現できるかどうかを質問します.

4

1 に答える 1

1

回答: リンクされたテーブルの名前を変更しないでください。VBA コードはまだ元の名前を探しているようです。

より良い、またはより完全な回答がある場合は、投稿してください。

于 2015-07-02T15:40:03.877 に答える