34 | 既存テーブルのフィールドにインデックスを設定する | ||
テーブルのインデックスに関しては、テーブル定義を表す「TableDef」オブジェクト内の「Index」オブジェクトを使います。 既存テーブルにまだ目的のインデックスがないときは、TableDefオブジェクトの「CreateIndex」メソッドで新規のインデックスを生成します。このメソッドでは引数に”インデックス名”を指定します。インデックス名とは、テーブルのデザインビューから表示されるインデックスの画面において、「インデックス名」の欄に表示されるものです。 このメソッドを実行すると、生成されたIndexオブジェクトが返されます。そのオブジェクト(下記プログラムではidxオブジェクト変数)に対して、「CreateField」メソッドでインデックス設定対象となるフィールド名を指定したり、そのインデックスの属性である「主キー」や「値要求」、「重複あり/なし」などの各種プロパティを設定します。 Indexオブジェクトの生成と設定が完了したら、最後にそれをTableDefオブジェクトの「Indexes」コレクションに追加します。 プログラム
Sub SampleCode_34() '既存テーブルのフィールドにインデックスを設定する Dim dbs As Database Dim tdf As TableDef Dim idx As Index Set dbs = CurrentDb 'テーブル定義を開く Set tdf = dbs.TableDefs("mtbl顧客リスト") 'テーブルへのインデックス定義の追加 Set idx = tdf.CreateIndex("顧客番号") 'インデックス定義へのフィールドの追加 With idx .Fields.Append .CreateField("顧客番号") .Primary = True '主キー .Required = True '値要求はい End With 'インデックス定義をインデックスコレクションに追加 tdf.Indexes.Append idx Set idx = tdf.CreateIndex("生年月日") With idx .Fields.Append .CreateField("生年月日") .Unique = False '重複あり(なしの場合はTrueを指定) End With tdf.Indexes.Append idx tdf.Indexes.Refresh End Sub 実行例
■実行前■実行後 |
|||
|
Copyright © T'sWare All rights reserved |