エラーメッセージ:「3276 DAO.QueryDef データベースのオブジェクト参照が正しくありません。」
http://answers.microsoft.com/ja-jp/office/forum/office_2010-access/access2010%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF/98c99dce-007d-e011-9b4b-68b599b31bf5
(指定した Database オブジェクトは、OpenDatabase メソッドで作成されたものではないか、または既に変更されているために無効になっています。)
という再現性が困難なエラーに悩まされることがあります。それには注意しつつ・・・
TableDef オブジェクトがリンクテーブルであることを判定するには、TableDefAttributeEnum 列挙体を使います。
以下は、リンクテーブルの接続先を切り替えるサンプル
Dim TableDef As DAO.TableDef For Each TableDef In CurrentDb.TableDefs If TableDef.Attributes And TableDefAttributeEnum.dbAttachedTable Then TableDef.Connect = ";DATABASE=C:\work\Sample1.accdb" End If Next
関連する資料のリンク
TableDefAttributeEnum 列挙 (DAO)
http://msdn.microsoft.com/ja-jp/library/office/ff194433.aspx
TableDef.Attributes プロパティ (DAO)
http://msdn.microsoft.com/ja-jp/library/office/ff834701.aspx