Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  ExcelへExcel  Etc.へEtc.  Word連携へWord

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
この頁のTOPへTop
≪使い方≫

この関数は、他の関数同様に呼び出して使用できます。
たとえばイミディエィト・ウィンドウで、

?altObj("成績", actable)

と入力後、エンターを押して見てください。
もし、「成績」 テーブルがその mdb にある場合は、「True」 が帰ってきます。
また無い場合は、 「False」 が表示されます。
≪注意≫

acTable, acQuery, acForm, acReport, acMacro, acModule は、Access の組込定数です。
それぞれ、テーブル・クエリー・フォーム・レポート・マクロ・モジュールを意味します。

Access2000 や Access2002 の場合、DAO への参照設定が必要です。


この頁のTOPへTop

【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
  form mail はこちら

Copyright(C) pPoy 2000-2005