Index プロパティ (ADO)

適用先: Access 2013、Office 2013

Recordset オブジェクトに対して現在有効なインデックスの名前を示します。

設定と戻り値

インデックス名を表す文字列型 (String) の値を設定または取得します。

注釈

Index プロパティで指定したインデックスは、 Recordset オブジェクトの基になるベース テーブルで事前に宣言しておく必要があります。 つまり、インデックスは、ADOX Index オブジェクトとしてプログラムで宣言しておくか、ベース テーブルの作成時に宣言しておきます。

インデックスを設定できないと、実行時エラーが発生します。 次の条件では、 Index プロパティを設定できません。

  • WillChangeRecordset イベント ハンドラーまたは RecordsetChangeComplete イベント ハンドラー内。

  • Recordset の操作が実行中である ( State プロパティで判別可能)。

  • Filter プロパティにより Recordset にフィルターが設定されている。

Recordset が閉じていれば、 Index プロパティは正常に設定できますが、基になるプロバイダーがインデックスをサポートしていない場合は、 Recordset が正常に開かなかったり、インデックスを使うことができないことがあります。

インデックスを設定すると、現在の行の位置が変更されることがあります。 その場合は、AbsolutePosition プロパティが更新され、 WillChangeRecordset イベント、 RecordsetChangeComplete イベント、 WillMove イベント、および MoveComplete イベントが生成されます。

インデックスの設定が可能で、LockType プロパティが adLockPessimistic または adLockOptimistic の場合は、 UpdateBatch 操作が暗黙的に実行されます。 これによって、現在のグループと、影響下のグループが解放されます。 既存のフィルターがすべて解放され、現在の行の位置は、並べ替えられた Recordset の最初の行に移動します。

Index プロパティは、 Seek メソッドと一緒に使用します。 基になるプロバイダーが Index プロパティをサポートしていないために Seek メソッドがサポートされていない場合は、代わりに Find メソッドを使用してください。 Recordset オブジェクトが Supports(adIndex) メソッドを使用してインデックスをサポートするかどうかを判断します。

どちらもインデックスを扱いますが、組み込み Index プロパティは、動的な Optimize プロパティとは無関係です。