AccessVBA フィールド名を探索して処理を分岐する
スポンサーリンク
テーブルに特定のフィールド名があるかどうかを確認して、ある場合に処理をするというコードを書いてみました。
他のアクセスファイルやEXCELファイルなどから、インポート操作を行った場合に
状況によって特定のフィールド名があったりなかったりする場合には使えるのではないかと思っています。
サンプルでは、テーブル名というテーブルにフィールド名というフィールドが存在するかどうか確認して、その有無によって処理を分岐させるようなイメージです。
以下、VBA記述
'-----------------------------------------------------------------------------------------------
Private Sub test
Dim flg As Boolean 'フィールド有無の判定フラグ
’フィールドの有無を判定するプロシージャを読んで、有無の判定を読み込む
Call chekFldName(flg)
'以下 メインの処理--------------------------------------------
End Sub
’フィール名を走査するプロシージャ
Private sub chekFldName(flg As Boolean)
Dim db As Database
Dim tbl As TableDef
Dim fld As Field
Set db = CurrentDb
'フィールド名を探索するテーブル
Set tbl = db.TableDefs("テーブル名")
If tbl.RecordCount <> 0 Then
'テーブル名の全てのフィールド名を走査する
For Each fld In tbl.Fields
If fld.Name = "フィールド名" Then
flg = True
Exit For
Else
flg = False
End If
Next
db.Close
Set db = Nothing
Else
End If
End Sub
'----------------------------------------------------------------------------------------
以上、VBA記述終わり。