MDBファイル_列の追加
概要
前回、データベースにテーブルを追加したが、列が存在してない。
テーブルに列を追加する。
テーブルに列を追加する
以下の列を追加したい。
| 名前 | データ型 | サイズ |
|---|---|---|
| 原子番号 | 整数 | 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 | ロングバイナリ値 |