| Access Tips by pPoy |
| Module | オブジェクトの存在を確かめる関数 (Ac97,Ac2000,Ac2002) |
AccessVBA を使用して、テーブルやクエリーなどのオブジェクトを作成するとき、 普通はエラーメッセージを殺して (表示させなくして) 実行します。 ただしこれでは以前に同じ操作をして、既に作成済みだった場合、 上書きしてしまう恐れもあります。 これは、Accessのオブジェクト名が既に存在するかどうかを確認する関数です。 以下の関数を標準モジュールに貼り付けてください。 |
|
|---|---|---|---|
Public Function altObj(名前 As String, タイプ As Integer) As Boolean
' ACCESSのオブジェクト名が既に存在するかどうか調べる。
' 入力された「名前」と「タイプ」に該当するオブジェクトが存在した場合 True を返す。
' タイプ例:→ acTable,acQuery,acForm,acReport,acMacro,acModule のいずれかを入力する。
On Error GoTo Err_altObj
Dim mdb As DAO.Database
Dim strName As String
Dim strCon As String
Set mdb = CurrentDb()
Select Case タイプ
Case acTable
strName = mdb.TableDefs(名前).Name
Case acQuery
strName = mdb.QueryDefs(名前).Name
Case acForm, acReport, acMacro, acModule
Select Case タイプ
Case acForm
strCon = "Forms"
Case acReport
strCon = "Reports"
Case acMacro
strCon = "Scripts"
Case acModule
strCon = "Modules"
End Select
strName = mdb.Containers(strCon).Documents(名前).Name
End Select
altObj = True
altObj_Exit:
Exit Function
Err_altObj:
altObj = False
Resume altObj_Exit
End Function
| |||
|
≪使い方≫ この関数は、他の関数同様に呼び出して使用できます。 たとえばイミディエィト・ウィンドウで、 ?altObj("成績", actable)と入力後、エンターを押して見てください。 もし、「成績」 テーブルがその mdb にある場合は、「True」 が帰ってきます。 また無い場合は、 「False」 が表示されます。 |
≪注意≫acTable, acQuery, acForm, acReport, acMacro, acModule は、Access の組込定数です。それぞれ、テーブル・クエリー・フォーム・レポート・マクロ・モジュールを意味します。 Access2000 や Access2002 の場合、DAO への参照設定が必要です。 |
☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
form mail はこちら
Copyright(C) pPoy 2000-2005