2008年10月18日土曜日

Access VBAでテーブルを生成、削除する

AccessのVBAには、SQLを実行できるADODB.Connectionなるものがあります。

んが、なぜかこいつ、SQLからのCREATE TABLE(テーブル作成)とかDROP TABLE(テーブル削除)とかができません。
ちゃんとしたDBではない、ってことか…。

テーブルの生成方法は何種類かありますが、一番簡単な方法で。
'#### 支度 ####
Dim db As dao.Database
Dim def As TableDef

'#### 接続 ####
Set db = CurrentDb

'#### テーブル情報作成 ####
Set def = db.CreateTableDef("テーブル名")
Call def.Fields.Append(def.CreateField("列1", dbInteger))
Call def.Fields.Append(def.CreateField("列2", dbText, 255))

'#### テーブル生成 ####
Call db.TableDefs.Append(def)

'#### 片付け ####
db.Close
Set db = Nothing

削除は簡単。1行ですみます。
'#### 支度はいらない ####
Call DoCmd.DeleteObject(acTable, "テーブル名")

全部SQLでできればわかりやすいんですけどね。
まあ、そういうものということで。