汎用オブジェクト存在チェック(97 以前) Hit Counter

対象バージョン : 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

補 足

 

改定履歴


目次へ戻る