ADOX 2


テーブルにフィールドを追加する

Columns の Append を利用することによってテーブルにフィールドを追加することができます。

Public Sub FldAppend()

    Dim myCtg As New ADOX.Catalog
    Dim tbl As Table
    
    myCat.ActiveConnection = CurrentProject.Connection
    
    Set tbl = myCat.Tables![顧客テーブル] '対象のテーブルを指定

  tbl.Columns.Append "性別", adWChar '性別フィールドをテキスト型で追加
    
End Sub

追加するフィールドのデータ型は以下のように指定します。

データ型 種類 定数
テキスト   adWChar
数値型 バイト adUnsignedTinylnt
  十進 adNumeric
  整数 adSmalllnt
  単精度浮動小数点 adSingle
  長整数 adInteger
  倍精度浮動小数点 adDouble
オートナンバー   adInteger
通貨型   adCurrency
日付/時刻型   adDate
メモ型   adLongVerChar
OLEオブジェクト   adLongVerBinary
ハイパーリンク   adLongVerWChar

データ型の後に桁数を指定しない場合、フィールドのサイズは 255 になります。


テーブルにインデックスを追加する

Indexes に Append を利用してインデックスを作成することができます。

Sub CreateIndex()

Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
Dim idx As New ADOX.Index


	cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=D:\Sample\Testdb.mdb;"

	Set tbl = cat.Tables("tbl_data")

'インデックスを作成

	idx.Name = "ID"
	idx.Columns.Append "ID_Nomber"
	idx.IndexNulls = adIndexNullsAllow

	tbl.Indexes.Append idx

   Set cat = Nothing

End Sub

テーブルに主キーを作成する

Keys の Append を利用することによってデータベース内のテーブルに主キーを作成することができます。

Public Sub CreateKeys()

    Dim cat As New ADOX.Catalog
    Dim KeyNew As New ADOX.Key  
    
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=D:\Sample\Testdb.mdb;"

    keyNew.Name = "ID"  'フィールド名IDを追加
    KeyNew.Type = adKeyPrimary   'フィールドを主キーにする
  KeyNew.Columns.Append "ID"   'フィールドを主キーにする
    cat.Tables("tbl_住所録").Keys.Append KeyNew
        
End Sub

リレーションシップを作成する

Keys の Append を利用することによってデータベース内にリレーションを作成することができます。

Sub CreateKeySet()

    Dim cat As New ADOX.Catalog
    Dim mKey As New ADOX.Key
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=D:\Sample\Testdb.mdb;"
    
    mKey.Name = "NewKey"
    mKey.Name = adKeyForeign       ’外部キーを設定 
    mKey.RelatedTable = "tbl_保護者"  ’リレーションするテーブルを設定
    mKey.Columns.Append "ID"     ’結合フィールドを指定
    ’保護者IDとIDを結合する
    mKey.Columns("保護者ID").RelatedColumn = "ID"  
    mKey.Updateule = adRINone
    cat.Tables("tbl_生徒").Keys.Append mKey
  
End Sub

ビュー(レコードセット)を作成する

View の Append を利用することによってデータベース内にビューを作成することができます。

Sub CreateView()
    Dim cat As New ADOX.Catalog
    Dim cmdNewView As New ADODB.Command
      
    Dim recAddress As New ADODB.Recordset
    
    cmdNewView.CommandText = "SELECT 名簿.氏名 FROM 名簿;"
    
    cat.ActiveConnection = CurrentProject.Connectin
    
    cat.Views.Append "Q_クエリー",cmdNewView
      
End Sub

ビュー(クエリー)を削除する

View の Delete を利用することによってデータベース内のビューを削除することができます。

Public Sub DeleteView()
   Dim cat As New ADOX.Catalog
   
   cat.ActiveConnection = CurrentProject.Connectin
   
   cat.Views.Delete "Q_クエリー"
   
End Sub