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

  関連記事

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

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

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

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

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

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

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

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

Oracle(oo4o)接続サンプル1
データベース(Oracle)に接続する(oo4o)

oo4o 接続 OO4O(Oracle Objects for OLE)はWin …

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

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

AddNew メソッド(ADO)
レコードの追加(ADO)AddNew メソッド,Update メソッド

データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …

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

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

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

CopyFromRecordset メソッド ADO の Recordset オ …

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

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