#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved