使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
> 365環境でACCESSを使用しています。DB不整合の問題を回避するためDBを分割しました。
DAO.Recordset オブジェクトを介してリンクテーブルのレコードに
アクセスしようとしている、ということでしょうか。
> dbOpenTable をdbDyanaSetに変更することにより発生する修正で苦労しています。
> 以下のSeekメソッドの変更案が見つかりません。
・リンクテーブルをテーブルタイプの Recordset オブジェクトとして開くことは出来ない。
・Seek メソッドはテーブルタイプの Recordset オブジェクトでのみ使用可能である。
(ダイナセットタイプの Recordset オブジェクト では呼び出すことが出来ない)
代替案としては、以下のいずれかが挙げられます。
・DAO.Database オブジェクトの OpenRecordset メソッドを呼び出す際、
第 1 引数 Name にテーブル名ではなく SQL ステートメント
( WHERE 句付きの SELECT 文)を渡すようにし、参照/編集の対象となる
レコードを最初から絞り込むようにする。
・Seek メソッドではなく Find 系のメソッド( FindFirst, FindNext など)を使用し、
NoMatch プロパティの値によって条件に該当するレコードの有無を調べる。
> 'T_XYZに入っているデータを削除する。
> Do Until abcRS.EOF
> abcRS.Delete
> abc.MoveNext
> Loop
・あるテーブルの全てのレコードを削除することを目的としているのであれば、
DAO.Database オブジェクトの Execute メソッドによって
そういう命令の SQL ステートメント( DELETE 文)を実行させるようにする。
'[T_XYZ]の全てのレコードを削除する DELETE 文の実行
CurrentDb.Execute "DELETE * FROM [T_XYZ];", dbFailOnError