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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

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

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

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

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

ado Field オブジェクト
フィールド名(ADO)Field オブジェクト

Field オブジェクト Recordset オブジェクト内の列(フィールド)を …

Sort プロパティ(ADO)
レコードを並べ替える(ADO)Sort プロパティ

データベースのレコードを並べ替える Sort プロパティ 【書式】 object …

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

CopyFromRecordset メソッド ADO の Recordset オ …

Delete メソッド(ADO)
レコードの削除(ADO)Delete メソッド

データベースのレコードを削除する Delete メソッド カレントレコードを削除 …

Recordsetオブジェクト内のカーソル移動
カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move

MoveFirst メソッド、MoveLast メソッド、MoveNext メソ …

データベース(MySQL)接続
データベース(MySQL)に接続する(ADO)

MySQL ODBCドライバ Windowsには標準で、いくつかの ODBC ド …

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

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

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

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