Access2003、Access VBAでのテーブル作成

サンプルコードのメモ。

Sub MakeTable_Test()
On Error GoTo Err_MakeTable_Test
    Dim db As Database
    Dim tbl As TableDef
    Dim fld As Field
    Dim idx As Index

    Set db = OpenDatabase(CurrentDb().Name)
    Set tbl = db.CreateTableDef("WORDS")
    
    ''''''''''''''''''''''''''''''''
    'フィールド作成。
    Set fld = tbl.CreateField("ID", dbLong)
    fld.Attributes = fld.Attributes + dbAutoIncrField 'オートナンバー。
    tbl.Fields.Append fld
    Set fld = tbl.CreateField("HYOKI", dbMemo)
    tbl.Fields.Append fld
    Set fld = tbl.CreateField("YOMI", dbMemo)
    tbl.Fields.Append fld
    
    ''''''''''''''''''''''''''''''''
    'インデックス作成。
    '主キー。
    Set idx = tbl.CreateIndex("ID")
    idx.Fields.Append idx.CreateField("ID", dbLong)
    idx.Primary = True '主キー。(「重複なし」となる)
    tbl.Indexes.Append idx
    'インデックス(重複なし)。
    Set idx = tbl.CreateIndex("HYOKI")
    idx.Fields.Append idx.CreateField("HYOKI", dbMemo)
    idx.Unique = True '重複なし。
    tbl.Indexes.Append idx
    'インデックス(重複あり)。
    Set idx = tbl.CreateIndex("YOMI")
    idx.Fields.Append idx.CreateField("YOMI", dbMemo)
    tbl.Indexes.Append idx
    
    '登録。
    db.TableDefs.Append tbl
    
    db.Close
    Exit Sub
Err_MakeTable_Test:
    If Not db Is Nothing Then
        db.Close
    End If
End Sub