LoginSignup
1
4

More than 5 years have passed since last update.

Access VBA フィールド名をExcelと同様に列挙体で表すことができる

Last updated at Posted at 2018-05-25

Excelは知る人ぞ知る

Excel VBAの列挙体を使ってセルを指定する。

Enum c '列挙体名。なんでも良いが、長いとコーディングが面倒なのでColumnのcとした。
    名前 = 1
    ふりがな
    アドレス
    電話番号
    都道府県
End Enum

定数値を指定しないと自動で 0 から連番が設定されます。

ということはもしかするとAccessもフィールド名を列挙体で定義できるのか??

実はこれはできる


Public Enum efld
ID = 0
CreationTime
LastAccessTime
directoryname
FullName
sName
BaseName
Extension
Attributes
isreadonly
Length
check
End Enum

ID=0の=0は本当は不要だけど明示した方が可読性があるので書いています。
Length は予約語だからか、小文字でも大文字になります。

Sub test()
Dim cDB As dao.Database: Set cDB = CurrentDb
Dim tdf As TableDef: Set tdf = cDB.TableDefs("ChildVbs")
Dim fld As Field
Dim dRS As dao.Recordset
Set dRS = cDB.OpenRecordset(tdf.Name)
dRS.MoveFirst
Set fld = dRS.Fields(efld.check)
Stop
End Sub

もちろん空白はダメ

Public Enum
Prefecture Code
End Enum

のようなことはできません。
visualbasic
Set fld = dRS.Fields(efld.check)

ここで列挙体を使っています。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4