リンク(アタッチ)テーブルに対する Seek Hit Counter

対象バージョン : 97, 2000(MDB), 2002(MDB), 2003(MDB)
最終更新日 : 2005/04/25 (オリジナル作成日 :1998/12/27)


概 要 

リンクしたテーブルに対して Recordset オブジェクトを作成し、FindFirst 等の Find 系のメソッドによる検索を行うことができますが、インデックスを利用した Seek メソッドを用いた高速検索を行うことができません。

リンクテーブルの元の接続先に対して Seek を行う方法です。

 

解 説

リンクテーブルの TableDef オブジェクトの Connect プロパティには、接続先の mdb ファイル名の情報が、また、SourceTableName プロパティには、接続先のテーブルの名称が格納されています。

これらの情報を利用し、リンクテーブルのリンク先に対して直接 Recordset オブジェクトを作成し、これに対して Seek を行います。

Dim curdb As Database
Dim lnkdb As Database
Dim tbDef As TableDef
Dim strDBPath As String
Dim lnkrs As Recordset

Set curdb = CurrentDb
Set tbDef = curdb.TableDefs("対象のリンクテーブル")
strDBPath = tbDef.Connect
strDBPath = Mid(strDBPath, InStr(strDBPath, "DATABASE=") + 9)
Set lnkdb = DBEngine(0).OpenDatabase(strDBPath)
Set lnkrs = lnkdb.OpenRecordset(tbDef.SourceTableName, dbOpenTable)
lnkrs.Index = "PrimaryKey"
lnkrs.Seek "=", 検索値

 

補 足

 

改定履歴


目次へ戻る