VBScriptさんま屋.

VBScriptの個人的なメモです (´・ω・`)

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 ロングバイナリ値