#332 フィールドがオートナンバー型かどうか調べるには? VBA

レコードセットのフィールドのデータ型は、「#331 フィールドのデータ型を調べるには?」の方法で取得できますが、Typeプロパティではオートナンバー型は長整数型と判別されるだけです。オートナンバー型かどうかは、さらにFieldオブジェクトの「Attributes」プロパティを調べて判断します。

Attributesプロパティの値と、オートナンバー型を表す組み込み定数 dbAutoIncrField とのマスク演算を行い、それがTrueならオートナンバー型です。

Dim dbs As Database
Dim rst As Recordset
Dim fld As Field

Const cstrTableName = "mtbl商品マスタ"       'テーブル名
Const cstrFieldName = "商品コード"           'フィールド名
  
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(cstrTableName)
Set fld = rst.Fields(cstrFieldName)
If (fld.Type = dbLong) And _
      (fld.Attributes And dbAutoIncrField) Then
  MsgBox cstrFieldName & " はオートナンバー型です!"
Else
  MsgBox cstrFieldName & " はオートナンバー型ではありません!"
End If
rst.Close

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved