|
>sheet1テーブルのフィールド名(検索項目)を削除するため、以下のVBAを動かしたら、一応目的が達成になっていますが、
>ただ削除する前に「検査項目」があれば、削除する。なければ何もしないという判断条件をいれたいのですが、対処方法はわからなくて、教えてください、よろしくお願いします。
どろくさくFieldsコレクションをループして存在を確認するという方法
Function sdf()
Dim db As DAO.Database
Dim td As DAO.TableDef
Dim fld As DAO.Field
Dim flg As Boolean
Set db = CurrentDb()
Set td = db.TableDefs("Sheet1")
For Each fld In td.Fields
If fld.Name = "検査項目" Then
flg = True
Exit For
End If
Next
If flg Then
td.Fields.Delete "検査項目"
Else
MsgBox "「検査項目」フィールドはありません。"
End If
End Function
しかし、こういう場合は、エラートラップを追加して対処するのが定石です。
Function sdf()
On Error GoTo ErrHandler
CurrentDb.TableDefs("Sheet1").Fields.Delete "検査項目"
Exit Function
ErrHandler:
Select Case Err.Number
Case 3265
MsgBox "「検査項目」フィールドはありません。"
Case Else
MsgBox Err.Number & ":" & Err.Description
End Select
End Function
|
|