ExcelでDAOを使いデータベースソフトを作ってみよう

Step 4 オートナンバー型で主キーのフィールドを作成する

顧客管理データベースを作成しようとすると、テーブルにオートナンバー型の主キーフィールドがどうしても必要です。
このフィールドがExcelのVBAで作成可能か試してみます。

・オートナンバー型とは
 Accessが自動的に連番を振ってくれます。
 レコードが削除されると、その番号は欠番になります。詰められることはありません。

・主キーとは
 主キーに設定されると、そのフィールドには他のレコードと重複する値を入力することができません。
 一つのレコードに唯一の番号が割り当てられます。
 従いまして、その番号は必ずそのレコードを指す事になります。

このオートナンバー型で主キーのフィールドはAccessのテーブルでは非常によく使います。


Homeへ > Excelでアプリケーションソフト2 > DAOデータベースソフト

シート画面

ExcelのMDBファイル作成画面
「顧客管理データベースの新規作成」ボタンをクリックすると作成を開始します。
MDB作成シート

作成されたテーブル
「顧客ID」がオートナンバー型で主キーに設定されています。
テーブルデザイン画面


シートのVBAコード

Option Explicit

Private Sub CommandButton1_Click()
    Dim db As Database
    Dim tbdef As TableDef
    Dim fld As Field
    Dim idx As DAO.Index

    ' データベースを作成します
    Set db = DBEngine.Workspaces(0).CreateDatabase("C:\顧客管理.mdb", dbLangJapanese)

    'テーブルを作成します
    Set tbdef = db.CreateTableDef("顧客マスター")

    'フィールドを作成します。
    Set fld = tbdef.CreateField("顧客ID", dbLong)
    'オートナンバー型にします。
    fld.Attributes = dbAutoIncrField
    tbdef.Fields.Append fld
    
    Set fld = tbdef.CreateField("名前", dbText, 20)
    tbdef.Fields.Append fld
    
    
    '主キーの作成
    Set idx = tbdef.CreateIndex("PrimaryKey")
    Set fld = idx.CreateField("顧客ID", dbLong)
    idx.Fields.Append fld
    'Primaryプロパティをセット
    idx.Primary = True
    'インデックスを追加
    tbdef.Indexes.Append idx
    db.TableDefs.Append tbdef

    'データベースを閉じます
    db.Close
    '終了処理を行います
    Set fld = Nothing
    Set tbdef = Nothing
    Set db = Nothing
End Sub


Homeへ > Excelでアプリケーションソフト2 > DAOデータベースソフト

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved