VBA によるフィールド作成(MDB & DAO) Hit Counter

対象バージョン:7.0, 97, 2000M
最終更新日:1999/12/30 ( オリジナル作成日:1999/12/30 )


概要

VBA を用いてフィールドを作成する方法です。

 

プロパティ設定表

 

プロパティ設定表の説明

プロパティシートのプロパティ名 DAO ACC プロパティ タイプ 省略時値

"DAO" は DAO のプロパティで、"ACC" は Access が独自に作成しているプロパティです。

"プロパティシートのプロパティ名" で がついたプロパティは、2000 から新設されたものです。

Access が独自に定義するプロパティで、CreateProperty で作成しなかった場合に Access が解釈する値を "省略時値" に括弧付きで表示しています。

"DAO" の Type は設定不要です。

"ACC" の TypedbBoolean を設定するプロパティは、設定後は 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

目次へ戻る