| 汎用オブジェクト存在チェック(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
からは「関数」と共に「クエリ」へ統合されました。
改訂履歴