ADOX 1
ADOXを使う
ADOXを使うとデータベースを作成したり、データベース内のオブジェクトを作成したりできます。ADOXを使用するにはVisual Basic Editorから[ツール]→[参照設定]で Microsoft ADO Ext. 2.7 for DDL and Security を選択します。
データベースを作成する
CatalogオブジェクトのCreateを使ってデータベースを作成することができます。
Sub CreateDB() Dim myCtg As New ADOX.Catalog 'D:\TestフォルダにSample.mdbを作成する myCtg.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Test\Sample.mdb" End Sub
テーブルを作成する
データベース内にテーブルを作成します。
Public Sub CreateTbl() Dim catDB As ADOX.Catalog Dim tbl As ADOX.Table Dim DBPath As String strDBPath = "D:\sample.mdb" Set catDB = New ADOX.Catalog ' カタログを開きます。 catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DBPath Set tbl = New ADOX.Table With tbl .Name = "tbl_Test" Set .ParentCatalog = catDB With .Columns .Append "Id", adInteger ' Id フィールドをオートナンバー型に設定します。 .Item("Id").Properties("AutoIncrement") = True .Append "顧客ID", adVarWChar .Append "氏名", adVarWChar .Append "住所", adVarWChar .Append "電話番号", adVarWChar, 20 '桁数20に指定 .Append "備考", adLongVarWChar End With End With ' データベースの Tables コレクションに新規 Table を追加します。 catDB.Tables.Append tbl Set catDB = Nothing End Sub追加するフィールドのデータ型は以下のように指定します。
データ型 種類 定数 テキスト adWChar 数値型 バイト adUnsignedTinylnt 十進 adNumeric 整数 adSmalllnt 単精度浮動小数点 adSingle 長整数 adInteger 倍精度浮動小数点 adDouble オートナンバー adInteger 通貨型 adCurrency 日付/時刻型 adDate メモ型 adLongVerChar OLEオブジェクト adLongVerBinary ハイパーリンク adLongVerWChar データ型の後に桁数を指定しない場合、フィールドのサイズは 255 になります。
テーブルを削除する
データベース内のテーブルを削除します。
Public Sub DeleteTbl() Dim catDB As ADOX.Catalog Dim tbl As ADOX.Table Dim DBPath As String strDBPath = "D:\sample.mdb" Set catDB = New ADOX.Catalog ' カタログを開きます。 catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DBPath Set tbl = New ADOX.Table Set tbl = New ADOX.Table ' データベースの tbl_Test テーブルを削除します。 catDB.Tables.Delete "tbl_Test" Set catDB = Nothing End Sub
テーブルのフィールドを削除する
テーブルの指定フィールドを削除します。
Public Sub DeleteFld() Dim catDB As ADOX.Catalog Dim tbl As ADOX.Table Dim DBPath As String DBPath = "D:\sample.mdb" Set catDB = New ADOX.Catalog ' カタログを開きます。 catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DBPath Set tbl = New ADOX.Table catDB.Tables("tbl_Test").Columns.Delete "備考" Set catDB = Nothing End Subフィールドを追加する場合は Columns コレクションに Append を指定します。
Public Sub AppendFld() Dim catDB As ADOX.Catalog Dim tbl As ADOX.Table Dim DBPath As String DBPath = "D:\sample.mdb" Set catDB = New ADOX.Catalog ' カタログを開きます。 catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DBPath Set tbl = New ADOX.Table '備考フィールドをテキスト型、フィールド200で追加する catDB.Tables("tbl_Test").Columns.Append "備考",adWChar,200 Set catDB = Nothing End Sub