概要
| この記事の結論 名前が異なるテーブルへリンクを切り替えるときは、Access側で使う名前とリンク先の実テーブル名を区別します。新しいリンクテーブルマネージャーでは再リンク時に別のテーブルを選べる場合があります。選択できない画面では、新しいリンクを作成して参照名を揃える方法やDAOを使う方法があります。いずれも列構成と更新先を確認してから切り替えます。 |
この記事でわかること
- ローカル名と実テーブル名を区別
- 新しい画面の再リンクを試す
- 代替手順では依存先の自動変更に注意
- 列と主キーの互換性を確認
この記事の主な内容
- Access側の名前とリンク先の名前の違い
- 変更前にテーブル構造を比較する
- リンクテーブルマネージャーで変更する
- 画面で選べない場合の代替手順
- DAOで接続先テーブルを指定する例
- 切替後の確認と誤更新を防ぐ運用
- よくある質問
想定読了時間:約8分~10分
1 Access側の名前とリンク先の名前の違い
リンクには、Accessの画面・クエリが参照するローカル名と、接続先に存在する実テーブル名があります。
さらに実テーブルを持つファイルやDBの接続情報があります。
この3つを区別すると、何を変えるべきか分かります。
| 項目 | 説明用の例 | 役割 |
|---|---|---|
| ローカル名 | T_顧客 | フォームやクエリから参照 |
| 接続先ファイル | Customer_be.accdb | データがある場所 |
| 実テーブル名 | M_顧客2026 | 実際に接続する表 |
ナビゲーションウィンドウでT_顧客を別の名前へ変更するだけでは、リンク先の実テーブルは変わりません。
DAOではName、Connect、SourceTableNameがそれぞれ異なる役割を持ちます。
接続先を変えたいのか、表示名を変えたいのかを先に整理してください。
参考:Microsoft TableDef.SourceTableNameプロパティ

2 変更前にテーブル構造を比較する
名前の変更だけに見えても、移行先で列の意味や型が変わっている場合があります。
切替前に現在の接続定義とフロントエンドを保全し、旧テーブルと新テーブルの構造を比較します。
- フォームやクエリが使う列名が存在するか。
- 列の型・桁数・Nullの扱いが合っているか。
- 主キーや一意識別の条件、更新権限が維持されるか。
- 同じIDが同じ顧客などを意味しているか。
件数が一致しても同じデータとは限りません。
同じIDに別の意味を持たせた移行先へ切り替えると、画面が開いても業務上は誤った表示になります。
代表レコードを複数選び、IDと内容の対応まで確かめます。
3 リンクテーブルマネージャーで変更する
新しいリンクテーブルマネージャーでは、再リンク時に実テーブルを選び直せる場合があります。
Microsoft公式も、新しいデータソースの場所を入力した後にテーブル名を選び直す流れを案内しています。
ただし、画面とデータソースによって提示される選択肢は異なります。
1. 関連するフォームやクエリを閉じ、[外部データ]→[リンクテーブルマネージャー]を開きます。
2. データソースを展開して、変更対象のリンクテーブル1件を選びます。
3. [再リンク]を選択し、接続先のファイルや必要な情報を指定します。
4. テーブル名の選択を求められたら、新しい実テーブルを指定します。
5. 成功状態を確認し、ローカル名、接続先、内容を点検します。
単に場所を変更する旧画面などで別テーブルを選べない場合は、次の代替手順を使います。
選択画面を出すためだけに本番の元テーブルを改名・削除する方法は取りません。
関連記事:Accessのリンク先変更と再リンクの手順|Accessの教科書
関連記事:Accessリンクテーブルとは 仕組みと違い|Accessの教科書
関連記事:Accessリンクテーブルの作成方法|Accessの教科書
4 画面で選べない場合の代替手順
代替案は、新しい実テーブルへのリンクを別名で作成し、検証後にAccess側の参照名を揃える方法です。
作業用のフロントエンドで行い、本番データの実テーブルは削除しません。

1. [外部データ]から新しい実テーブルへのリンクを追加し、一時的なローカル名で保持します。
2. 一時リンクを開き、列、件数、代表ID、更新の可否を確認します。
3. 旧リンクを使う依存先を記録し、名前の自動修正の設定と影響を確認します。
4. 旧リンクの定義だけを削除します。旧リンクを別名へ改名して依存先が自動追従する操作には注意します。
5. 新しいリンクを旧リンクと同じローカル名へ揃え、保存済みクエリ・フォーム・VBAを点検します。
名前を合わせれば必ず無修正で動くとは限りません。
列構成の違い、名前の自動修正、コード内の参照、リレーションシップなどが影響するためです。
切替後の確認まで完了してから利用者へ配布します。
複数テーブルや複数端末への影響が分からない場合は、変更目的と現状の構成を整理してお気軽にご相談ください。
5 DAOで接続先テーブルを指定する例
次の例は、別のAccessファイルの実テーブルへ、新しい一時リンクを作る方法です。
既存リンクを自動削除する処理は含めません。
VBEでDAOの参照設定を確認し、作業用コピーで実行してください。
パスと名前は例なので実環境に合わせて変更します。
Public Sub CreateTestLink()
On Error GoTo EH
Dim db As DAO.Database
Dim td As DAO.TableDef
Set db = CurrentDb
Set td = db.CreateTableDef(“L_顧客_切替確認”)
td.Connect = “;DATABASE=C:\AccessTest\Customer_be.accdb”
td.SourceTableName = “M_顧客2026”
db.TableDefs.Append td
MsgBox “一時リンクを作成しました。内容を確認してください。”
Done:
Set td = Nothing
Set db = Nothing
Exit Sub
EH:
MsgBox CStr(Err.Number) & “: ” & Err.Description
Resume Done
End Sub
同名の一時リンクがすでに存在する場合はエラーになります。再実行前に既存リンクの内容を確認し、必要なものを勝手に上書きしないでください。この例はAccessファイル同士を対象とし、ODBC接続、認証情報の保存、全端末への配布は扱いません。
参考:Microsoft TableDef.SourceTableNameプロパティ
6 切替後の確認と誤更新を防ぐ運用
切替後は、テーブルを開くだけでなく、検索、登録、更新、帳票を確認します。
更新の試験は複製環境で行い、意図した新テーブルへ書き込まれることを確かめてください。
複数のリンクが同じような名前で並ぶ場合は、ローカル名と実テーブル名の対応表を残します。
別PCへ配布した旧フロントエンドが残っていると、旧テーブルへ書き込みが続くおそれがあります。
全端末の切替状況を記録しましょう。
障害時に戻すときも、切替後に入力された更新分を先に保全します。
接続定義を戻すだけでデータの状態も元に戻るわけではありません。
変更目的と切替時点を記録し、新旧のデータを混在させない運用を組み立てます。
よくある質問(FAQ)
変わりません。ローカルの参照名と実テーブル名は別の情報です。
新しい画面では再リンク時に別テーブルを選べる場合があります。選べない場合は新規リンク作成などの代替手順を使います。
新リンクのローカル名を旧名へ揃える方法があります。
ただし列の互換性や名前の自動修正などの影響確認が必要です。
掲載例は実機未検証の一時リンク作成例です。
パス、名前、DAO参照を確認し、作業用コピーで試してから運用へ組み込みます。
別名テーブルへの切替と参照エラーの調査が必要な場合
この記事の手順を作業用コピーで確認しても解決しない場合や、業務への影響が大きく自社だけで判断しにくい場合は、お気軽にご相談ください。Accessの現在の構成、発生している症状、変更したい内容をもとに、調査・改修の範囲を整理します。
ご相談時は、Accessの製品名・Build・bit数、エラーの内容、対象ファイルの構成、直前に変えた設定を分かる範囲でお知らせください。機密データやパスワードは公開フォーム等へそのまま記載しないでください。