0

MS-JET リンク テーブルを使用する Access 2003 データベースがあります (つまり、2 つの *.mdb ファイルがあります)。全体的なタスクは、SQL サーバーに移行することです。ただし、既存のデータベースには、両方の Access 移行ウィザードを混乱させるスペースやその他の文字を含む複数のフィールドがあります。したがって、中間タスクは、更新されたフィールド名を持つ既存の mdb のバージョンを作成することです。

リンクされたテーブルがその mdb で読み取り専用であるため、UI mdb ファイルのフィールド名を「単純に」変更しても機能しません。データ mdb ファイルのフィールド名を最初に更新しても、起動時に UI mdb がぐらつき、Access があきらめるため、機能しません。

提案を探していますが、表示できるオプションは次のとおりです。

  • Data mdb を UI に再統合し、更新を行ってから、データを再エクスポートします。私には非常に危険に思えます(システムは稼働中であり、厳密に必要以上にデータを操作したくありません)。

  • ここで、ODBC の詳細を VBA コードで変更することに関連するいくつかの回答を見てきました。これはうまくいきますか?より良い方法はありますか?

  • リンクされたすべてのテーブルのリンクを解除し、UI mdb で残りのフォーム、レポート、クエリを編集し (しかし、それは機能しますか??)、データ mdb フィールドを編集し、最後にすべてを再リンクします。バラバラになる??...可能性が高いようです。

助言がありますか?ルース

4

3 に答える 3

1

私は、既存の Access アプリケーションを引き継ぐたびに、このプロセスを実行します。何か重要なことを行う前に、独自の命名規則の基準に合わせる必要があります。最近、 fields の名前を変更するための簡単なユーティリティを作成しました。これは私のために作成されたものであり、エラー リカバリはほとんどなく、UI も見苦しいものですが、自分で行うよりも高速である可能性があります。

于 2011-10-06T01:16:00.550 に答える
0

オートコレクトが提供するトラック名を確認してください。 名前のオートコレクトがMicrosoftAccessでどのように機能するか

UI MDBのコピーを作成し、リンクされたテーブルを削除してから、データMDBから(リンクではなくテーブルとして)インポートします。オートコレクトを有効にすると、Accessは、フィールド名の変更が使用されている場所(フォームなど)に変更を反映しようとします。必要な変更を100%キャッチする可能性は低いですが、それらの大部分を解決する必要があります。次に、残りを手動で追跡して修正する必要があります。

すべてを修正したら、そのMDBバージョンを使用してテーブルをSQLServerに「アップサイズ」できます。ただし、1つの大きな問題は、新しいバージョンに変更を加えているときに元のデータベースが「ライブ」である場合です。暫定的にデータベースを完全に停止できない場合は、新しいテーブルからデータを破棄してから、古いフィールド名を新しいフィールド名にエイリアスする「追加」クエリを使用して、最新のデータを取得できます。

INSERT INTO NewTable (emp_id, another_field)
SELECT
    [emp ID],
    [another field]
FROM OldTable IN 'C:\somefolder\Data.mdb';

最後に、オートコレクトに関する警告:奇妙なことが起こる可能性があるため、データベースの製品版ではオートコレクトを有効のままにしないでください。IMOの最も安全な方法は、オンにしてオブジェクト名の変更を完了してから、オフに戻すことです。

于 2011-10-04T21:10:29.233 に答える
0

Find and Replace名前の変更をプロジェクト全体に反映させる必要がある場合は、Rick Fisher のツールが役立つことがあります。私は何年もこれに依存してきました (ただし、最近は Access の開発はあまり行っていません): http://www.rickworld.com/products.html

このツールでテーブルとフィールドの名前が変更されると思いますが、よくわかりません。主に、他のクエリ、フォームとレポートのプロパティ、および VBA コードでテーブルとクエリへの参照を見つけるために使用しました。

于 2011-10-04T19:50:47.160 に答える