汎用オブジェクト存在チェック(2000 以降) |
対象バージョン : 2000, 2002, 2003, 2007
最終更新日 : 2007/02/12
( オリジナル作成日:1999/09/18 )
概 要
プロシージャ内で、指定されたオブジェクト が存在するか否かをチェックするユーザー定義関数です。
構 文
IsObjExist(objectType, ObjectName)
解 説
IsObjExist 関数の戻り値はブール型 (Boolean)です。
引数に指定されてオブジェクトが存在する場合は True を、存在しない場合 は False を返します。
IsObjExist 関数では次の引数を使用します。
引 数 | 内 容 | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ObjectType | オブジェクトの型を示す Access の組み込み定数を指定します。
|
||||||||||||||||||||||||||||||||||||||||||||||||
ObjectName | オブジェクトの名前を示す文字列式です。 |
ObjectType に誤った値や、現在のプロジェクトで使用できないオブジェクトを示す値を設定した場合や、ObjectName が長さ0の文字列の場合、 IsObjExist 関数は False を返します。
ユーザー定義関数
Public Function IsObjExist(argObjType As AcObjectType, argObjName As String) As Boolean Dim cobj As Object Dim aobj As AccessObject '===== ADP/MDB・ACCDB 共通オブジェクト ===== Select Case argObjType Case acTable Set cobj = CurrentData.AllTables Case acForm Set cobj = CurrentProject.AllForms Case acReport Set cobj = CurrentProject.AllReports Case acDataAccessPage Set cobj = CurrentProject.AllDataAccessPages Case acMacro Set cobj = CurrentProject.AllMacros Case acModule Set cobj = CurrentProject.AllModules Case Else Select Case CurrentProject.ProjectType '===== ADP のみのオブジェクト ===== Case acADP Select Case argObjType Case acDiagram Set cobj = CurrentData.AllDatabaseDiagrams Case acStoredProcedure Set cobj = CurrentData.AllStoredProcedures Case acServerView Set cobj = CurrentData.AllViews Case acFunction If CCur(SysCmd(acSysCmdAccessVer)) >= 10@ Then Set cobj = CurrentData.AllFunctions Else Exit Function End If Case Else Exit Function End Select '===== MDB・ACCDB のみのオブジェクト ===== Case acMDB Select Case argObjType Case acQuery Set cobj = CurrentData.AllQueries Case Else Exit Function End Select Case Else Exit Function End Select End Select For Each aobj In cobj If CVar(aobj.Name) = argObjName Then IsObjExist = True Exit For End If Next Set aobj = Nothing Set cobj = Nothing End Function
補 足
Access 2002 から ADP に SQL Server
に登録可能な「関数」が追加されました。
これに伴い、データベースビューでのオブジェクトの分類が変更されました。
2000 では「ビュー」、「ストアドプロシージャ」
はそれぞれ別のオブジェクトとなっていましたが、2002
からは「関数」と共に「クエリ」へ統合されました。
改訂履歴