(エラーとなるサンプル)
Dim Table As DAO.TableDef
Set Table = CurrentDb.TableDefs("テーブル1")
Debug.Print Table.Name
エラーメッセージ:[3420] オブジェクトが正しくないか、現在設定されていません。
マイクロソフト サポート情報によると、これは CurrentDb メソッドの参照を明示的に変数に代入してから使用する必要がある、とのこと。
(改善例)
Dim DB As DAO.Database
Set DB = CurrentDb()
Dim Table As DAO.TableDef
Set Table = DB.TableDefs("テーブル1")
Debug.Print Table.Name
これだとバグとしか思えないんですが、言語仕様なんでしょうか・・
■ 参考資料
ACC: "Object Invalid or No Longer Set" Error Using CurrentDbhttp://support.microsoft.com/kb/167173/ja