VBA によるフィールド作成(MDB & DAO) |
対象バージョン:7.0, 97, 2000M
最終更新日:1999/12/30 ( オリジナル作成日:1999/12/30 )
概要
VBA を用いてフィールドを作成する方法です。
プロパティ設定表
プロパティ設定表の説明
プロパティシートのプロパティ名 | DAO | ACC | プロパティ | タイプ | 省略時値 |
"DAO" は DAO のプロパティで、"ACC" は Access が独自に作成しているプロパティです。
"プロパティシートのプロパティ名" で ※ がついたプロパティは、2000 から新設されたものです。
Access が独自に定義するプロパティで、CreateProperty で作成しなかった場合に Access が解釈する値を "省略時値" に括弧付きで表示しています。
"DAO" の Type は設定不要です。
"ACC" の Type で dbBoolean を設定するプロパティは、設定後は dbBinary と解釈されるようです。
インデックスは CreateIndex メソッドを用いて設定します。
各プロパティの設定値等の詳細は、ヘルプを参照してください。
作成例
【既存のテーブルへの追加の場合】
CreateField により Field オブジェクトを作成し、DAO プロパティを設定してから Fields コレクションに Append します。
その後、Access プロパティを CreateProperty で作成し Append します。
Dim db As Database Dim tdef As TableDef Dim fld As Field Dim prp As Property Set db = CurrentDb Set tdef = db.TableDefs("テーブル名") Set fld = tdef.CreateField("フィールド名", dbText, 50) ' DAO プロパティ fld.DefaultValue = "規定値" tdef.Fields.Append fld tdef.Fields.Refresh ' Access プロパティ Set prp = fld.CreateProperty("Format", dbText, "@@@@") fld.Properties.Append prp
【テーブルを新規に作成する場合】
Access プロパティは CreateTableDef で作成した TableDef オブジェクトを一旦 TableDefs コレクションへ Append した後に作成します。
Dim db As Database Dim tdef As TableDef Dim fld As Field Dim prp As Property Set db = CurrentDb Set tdef = db.CreateTableDef("テーブル名") Set fld = tdef.CreateField("フィールド名", dbText, 50) ' DAO プロパティ fld.DefaultValue = "規定値" tdef.Fields.Append fld tdef.Fields.Refresh db.TableDefs.Append tdef db.TableDefs.Refresh ' Access プロパティ Set fld = tdef.Fields("フィールド名") Set prp = fld.CreateProperty("Format", dbText, "@@@@") fld.Properties.Append prp