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

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

RecordCount プロパティ(ADO)
Recordset オブジェクト内のレコード数(ADO)RecordCount プロパティ

RecordCount プロパティ Recordset オブジェクトのレコード数 …

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

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

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

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

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

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

データベース(SQLServer)接続
データベース(SQL Server)に接続する(ADO)

データベース(SQL Server)に接続 ODBC または OLE DB で接 …

SQL実行結果
データベース(Oracle)に接続する(ODBC を使用)

ODBC接続(ADO) ADOで、ODBC(Open Database Conn …

ADOX テーブル名・クエリ名を取得
テーブル名、クエリ名の取得(ADOX)

テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …

ADO Access (参照設定)
データベース(Access 等)に接続(ADO)

ADO で、データベースに接続 外部データベースを操作する方法のひとつに ADO …

CopyFromRecordset メソッド
Recordset オブジェクトの内容をワークシートにコピーする(CopyFromRecordset メソッド・ADO)

CopyFromRecordset メソッド ADO の Recordset オ …

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

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