#333 フィールドがハイパーリンク型かどうか調べるには? VBA

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

Attributesプロパティの値と、ハイパーリンク型を表す組み込み定数 dbHyperlinkField とのマスク演算を行い、それが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 = dbMemo) And _
      (fld.Attributes And dbHyperlinkField) 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