| 汎用オブジェクト存在チェック(97 以前) |
|
対象バージョン : 97 (,2000, 2002, 2003, 2007)
最終更新日 : 2007/02/12
( オリジナル作成日:1996/11/16 )
概 要
プロシージャ内で、指定されたオブジェクト が存在するか否かをチェックするユーザー定義関数です。
構 文
IsObjExist(objectType, ObjectName)
解 説
IsObjExist 関数の戻り値はブール型 (Boolean)です。
引数に指定されてオブジェクトが存在する場合は True を、存在しない場合 は False を返します。
IsObjExist 関数では次の引数を使用します。
| 引 数 | 内 容 |
|---|---|
| ObjectType | Access の組み込み定数 acTable, acQuery, acForm, acReport, acMacro, acModule を指定します。 |
| ObjectName | オブジェクトの名前を示す文字列式です。 |
ObjectType に誤った値を設定した場合や、ObjectName が Null の場合、 IsObjExist 関数は False を返します。
ユーザー定義関数
Function IsObjExist(Arg_ObjType As Integer, Arg_ObjName) As Boolean
Dim db As DAO.DATABASE
Dim tbd As DAO.TableDef
Dim qd As DAO.QueryDef
Dim ContName As String
Dim doc As DAO.Document
IsObjExist = False
If IsNull(Arg_ObjName) Or Arg_ObjName = "" Then Exit Function
Set db = CurrentDb
Select Case Arg_ObjType
Case acTable
db.TableDefs.Refresh
For Each tbd In db.TableDefs
If tbd.Name = Arg_ObjName Then
IsObjExist = True
Exit For
End If
Next
Case acQuery
db.QueryDefs.Refresh
For Each qd In db.QueryDefs
If qd.Name = Arg_ObjName Then
IsObjExist = True
Exit For
End If
Next
Case acForm, acReport, acMacro, acModule
Select Case Arg_ObjType
Case acForm
ContName = "Forms"
Case acReport
ContName = "Reports"
Case acMacro
ContName = "Scripts"
Case acModule
ContName = "Modules"
End Select
db.Containers(ContName).Documents.Refresh
For Each doc In db.Containers(ContName).Documents
If doc.Name = Arg_ObjName Then
IsObjExist = True
Exit For
End If
Next
End Select
End Function
補 足
改定履歴