たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_DAOの利用その3_【Database】【TableDef】【CreateTableDef】テーブルの作成

DAOでデータベースに接続し、テーブルを作成する記述

今回の記述に関する前情報

何を行うか

CreateTableDefメソッドを使ってTableDefオブジェクトを作成
作成したオブジェクト内に、さらにフィールドを作成しデータベースに追加

TableDefオブジェクトを作成する書式

Dim TDef As DAO.TableDef
Set TDef = Databaseオブジェクト変数.CreateTableDef("作成するテーブル名")

作成したTableDefオブジェクトにフィールドを作成する書式

TDef.Fields.Append TDef.CreateField("フィールド名", データ型, フィールドサイズ)
Databaseオブジェクト変数.TableDefs.Append TDef

記述例における利用パーツ

・コレクション
  →Fields
・メソッド
  →CurrentDb / CreateTableDef / Append / CreateField

CreateFieldの第2引数

フィールドを作成するにあたり、フィールドに設定するデータ型をCreateFieldの第2引数で指定する
dbBoolean / dbLong / dbDouble / dbData / dbText

注意点

最低でも1つのフィールドを作成する
既にあるテーブル名のテーブルを作成しようとすると実行時エラーが発生する


【実践】テーブルを新規作成する記述例

カレントプロジェクトのデータベースに接続する場合の記述

以下のテーブルを新規作成
テーブル名:新飲料リスト
フィールド名1:"通し番号" データ型:テキスト フィールドサイズ:4
フィールド名2:"品目" データ型:テキスト フィールドサイズ:16


▼もとのAccessファイルの状態▼


▼記述例▼

Sub createtable()

Dim DAOdb As DAO.Database
Dim TDef As DAO.TableDef
Set DAOdb = CurrentDb
Set TDef = DAOdb.CreateTableDef("新飲料リスト")

TDef.Fields.Append TDef.CreateField("通し番号", dbText, 4)
TDef.Fields.Append TDef.CreateField("品目", dbText, 16)
DAOdb.TableDefs.Append TDef

Set TDef = Nothing: Set DAOdb = Nothing

End Sub



▼実行結果▼


作成したテーブルを削除する記述

以下の記事を参考

▼TableDefs.Deleteの記述▼
Access DAO テーブルを検索して削除する方法 | 簡単!!Access作成方法の紹介