ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

インデックス、プロパティの設定(ADOX)

      2017/10/23

インデックスを作成する

index オブジェクト

【書式】

<CreateObject 関数を使用する場合>
Dim idx As Object
Set idx = CreateObject(“ADOX.Index”)

<参照設定を行う場合>
Dim idx As ADOX.Index
Set idx = New ADOX.Index


参照設定を行うライブラリファイルについて


Microsoft ADO Ext.6.0 for DDL and Security を選択します。ただし、Office 等のバージョンにより、ADOX のバージョンも異なります。参照設定の方法については、ファイルシステムオブジェクト(FileSystemObject)の使い方 を参照してください。

CreatObject 関数 を使用する場合は、参照設定の必要はありませんが、VBE で、自動メンバ表示等のコーディング支援機能が使用できません。また、マクロの実行速度も遅くなります。



Name プロパティ

【書式】

object.Name


引数・戻り値

  • object  ・・・  対象となる Index オブジェクトを指定します。

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



Columns コレクション

【書式】

object.Columns

<Append メソッド>
object.Columns.Append Column


引数・戻り値

  • object  ・・・  対象となる Index オブジェクトを指定します。
  • Column  ・・・  インデックスを設定するフィールド(列)名を指定します。


PrimaryKey プロパティ

【書式】

object.PrimaryKey = boolean


引数・戻り値

  • object  ・・・  対象となる Index オブジェクトを指定します。
  • boolean  ・・・  ブール型(boolean)の値を取得および設定します。True を指定すると主キーを設定し、自動的に、Unique プロパティの値が True に、IndexNulls プロパティの値が adIndexNullsDisallow に設定されます。


Unique プロパティ

【書式】

object.Unique = boolean


引数・戻り値

  • object  ・・・  対象となる Index オブジェクトを指定します。
  • boolean  ・・・  ブール型(boolean)の値を取得および設定します。True を指定すると重複した値を設定できなくなります。


インデックスを削除する

Indexes.Delete メソッド

【書式】

object.Indexes.Delete index_name


引数・戻り値

  • object  ・・・  対象となる Table オブジェクトを指定します。
  • index_name  ・・・  削除するインデックス名を指定します。


フィールド(列)のプロパティ

Properties コレクション

【書式】

tbl_object.column_object.Properties [.Item] (“item“).Value = boolean


引数・戻り値

  • tbl_object  ・・・  対象となる Table オブジェクトを指定します。
  • column_object  ・・・  対象となる Column オブジェクトを指定します。
  • item,boolean  ・・・  
    item に設定する値 boolean 内容
    AutoIncrement True データ型をオートナンバー型に設定
    Nullable True 値要求(値を必ず入力する)
    False 値要求(入力しなくてもよい)
    Jet OLEDB:Allow Zero Length True 空文字の入力可
    False 空文字の入力不可

値要求「はい」「いいえ」の設定
上記の以外に以下の方法で設定が可能です。
tbl_object.column_obj.Attributes = adColFixed … 値要求「はい」
tbl_object.column_obj.Attributes = adColNullable … 値要求「いいえ」

テーブル作成時に、設定します。すでに作成済みのテーブルのフィールド(列)の属性を変更することは出来ません。



ADOX を使用してインデックスを作成する例


サンプルVBAソース その1


実行前

ADOX インデックスを作成する1


実行後

ADOX インデックスを作成する2


サンプルVBAソース その2





ADOX を使用してインデックスを削除する例


サンプルVBAソース


実行前

ADOX インデックスを作成する2


実行後

ADOX インデックスの削除



ADOX Properties 使用例


サンプルVBAソース


実行結果

ADOX テーブル・インデックスの作成



 - データベース , , , , , , , , , , , , , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

Parameters.Refresh エラー
クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッド

クエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 …

Excelに接続する(ADO)
Excelファイルに接続(ADO)

ADOでExcelファイルに接続 ADO を使用してExcelファイルを読み込み …

ADOX クエリを作成
クエリの作成・削除(ADOX)

ADOX を使用してクエリを作成・削除 クエリを作成する手順 【書式】 <参照設 …

ADOX データベース作成1
データベースを作成する(ADOX)

ADOX を使用してデータベース(Access)を作成 Catalog オブジェ …

トランザクション01
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans

ADO でのトランザクション処理 【書式】 Sub Sample_Transac …

ADO Fields コレクション
フィールド名(ADO)Fields コレクション

Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …

DB Class Excel へ接続
Excel VBA のクラスを使ってデータベースへ接続する(ADO)

データベースの処理をクラスモジュールに書く ExcelVBAで、クラス使用する方 …

Update メソッド(ADO)
レコードの更新(ADO)Update メソッド

データベースのレコードを更新する Update メソッド カレントレコードの内容 …

ADOX テーブルの作成
テーブルの作成・削除/フィールドの作成・削除(ADOX)

ADOX を使用してテーブル・フィールド(列)を作成・削除 Table オブジェ …

Command.Execute Insert Into 文
SQL文を実行する(ADO)Execute メソッド

Command オブジェクトの Execute メソッドで、SQL文を実行 Co …