2008年10月18日土曜日

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

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

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

テーブルの生成方法は何種類かありますが、一番簡単な方法で。
  1. '#### 支度 ####  
  2. Dim db As dao.Database  
  3. Dim def As TableDef  
  4.   
  5. '#### 接続 ####  
  6. Set db = CurrentDb  
  7.   
  8. '#### テーブル情報作成 ####  
  9. Set def = db.CreateTableDef("テーブル名")  
  10. Call def.Fields.Append(def.CreateField("列1", dbInteger))  
  11. Call def.Fields.Append(def.CreateField("列2", dbText, 255))  
  12.   
  13. '#### テーブル生成 ####  
  14. Call db.TableDefs.Append(def)  
  15.   
  16. '#### 片付け ####  
  17. db.Close  
  18. Set db = Nothing  

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

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