Access形式データベースへの接続(3)列の追加
概要
前回、データベースにテーブルを追加したが、列が存在してない。
テーブルに列を追加する。
テーブルに列を追加する
以下の列を追加したい。
名前 | データ型 | サイズ |
---|---|---|
原子番号 | 整数 | 4byte |
元素記号 | テキスト | 4byte |
元素名 | テキスト | 16byte |
Dim cat 'Catalogオブジェクト
Dim cols 'Columnsコレクション
'ACCDBファイルに接続する
Set cat = CreateObject("ADOX.Catalog")
cat.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.accdb;"
'コレクションを取得する
Set cols = cat.Tables("elements").Columns
'列を追加する
cols.Append "原子番号", 3 'VBScriptのLong型に対応
cols.Append "元素記号", 202, 4 'テキスト
cols.Append "元素名", 202, 16 'テキスト
テーブルの列を確認する
Dim cat 'Catalogオブジェクト
Dim cols 'Columnsコレクション
'ACCDBファイルに接続する
Set cat = CreateObject("ADOX.Catalog")
cat.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.accdb;"
'コレクションを取得する
Set cols = cat.Tables("elements").Columns
Dim col, buf
'各列の名前を取得する
For Each col In cols
buf = buf & col.Name & vbCr
Next
Msgbox buf
以下のように表示される。なぜか、追加したときとは逆順に表示される。
元素名
元素記号
原子番号
Columnsコレクション
テーブルは一般に複数の列を持つ。
プロパティ
プロパティ | 説明 |
---|---|
Item | 引数で指定したメンバー(列)を示す |
Count | メンバー(列)の数 |
メソッド
メソッド | 説明 |
---|---|
Append | 列を追加する |
Delete | 列を削除する |
Refresh | 変更内容を反映する |
Appendメソッドの引数
引数 | 説明 |
---|---|
第1引数 | 列の名前 |
第2引数 | データ型 |
第3引数 | サイズ(Byte)を指定 |
Columnオブジェクト
1個の列に対応する。
オブジェクト | プロパティ | メソッド |
---|---|---|
Column | Name Type Attributes DefinedSize NumericScale Precision ParentCatalog RelatedColumn SortOrder Properties |
データ型の一覧
使用頻度が高いのは太字のデータ型。
定数 | 値 | サイズ | 説明 |
---|---|---|---|
adEmpty | 0 | EMPTY | |
adSmallInt | 2 | 2バイト | 符号付き整数 (VBScriptのIntegerに相当) |
adInteger | 3 | 4バイト | 符号付き整数 (VBScriptのLongに相当) |
adSIngle | 4 | 4バイト | 単精度浮動小数点型 |
adDouble | 5 | 8バイト | 倍精度浮動小数点型 |
adCurrency | 6 | 8バイト | 通貨型 (小数点以下4桁の固定小数点型) |
adDate | 7 | 8バイト | 日付/時刻型 |
adBSTR | 8 | Unicode文字列 | |
adError | 10 | 4バイト | エラーコード |
adBoolean | 11 | 2バイト | ブール値 |
adDecimal | 14 | 16バイト | 正確な数値 |
adTinyInt | 16 | 1バイト | 符号付き整数 |
adUnsignedTinyInt | 17 | 1バイト | 符号なし整数 |
adUnsignedSmallInt | 18 | 2バイト | 符号なし整数 |
adUnsignedInt | 19 | 4バイト | 符号なし整数 |
adBigInt | 20 | 8バイト | 符号付き整数 |
adUnsignedBigInt | 21 | 8バイト | 符号なし整数 |
adFileTime | 64 | 8バイト | 1601年1月1日からの時間 |
adGUID | 72 | 16バイト | GUID、オートナンバー型 |
adBinary | 128 | バイナリ値 | |
adChar | 129 | 文字列 | |
adWChar | 130 | Unicode文字列 | |
adNumeric | 131 | 19バイト | 正確な数値 |
adUserDefined | 132 | ユーザ定義 | |
adDBDate | 133 | 6バイト | 日付 |
adDBTime | 134 | 6バイト | 時刻 |
adDBTimeStamp | 135 | 16バイト | 日付/時刻 |
adChapter | 136 | チャプター値 | |
adPropVariant | 138 | PROPVARIANT | |
adVarNumeric | 139 | 数値 | |
adVarChar | 200 | 文字列 | |
adLongVarChar | 201 | 長い文字列 | |
adVarWChar | 202 | Unicode文字列 | |
adLongVarWChar | 203 | 長いUnicode文字列 | |
adVarBinary | 204 | バイナリ値 | |
adLongVarBinary | 205 | ロングバイナリ値 |