Access Tips by pPoy

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

Module フォーム or レポートのコードの有無をチェックする関数 (Ac97,Ac2000,Ac2002)
Access では、フォームやレポートにもプロシージャを作成することができます。
以下は、指定したフォーム (レポート) に、コードが書かれていることを判定する関数です。

以下のコードを標準モジュールに貼り付けてください。
Function mdlCheck(ByVal objName As String, ByVal objType As Integer) As Boolean
'指定されたフォーム・レポートのコードの有無をチェック
'objType には、acForm と acReport のいずれかを指定
'2005/03/05 pPoy
On Error GoTo Err_mdlCheck
   
    mdlCheck = False
    Select Case objType
        Case acForm
            'フォームの場合
            DoCmd.OpenForm objName, acDesign, , , , acHidden
            mdlCheck = Forms(objName).HasModule
            DoCmd.Close acForm, objName, acSaveNo
        Case acReport
            'レポートの場合
            DoCmd.OpenReport objName, acDesign, , , , acHidden
            mdlCheck = Reports(objName).HasModule
            DoCmd.Close acReport, objName, acSaveNo
    End Select

Exit_mdlCheck:
    Exit Function
Err_mdlCheck:
    '名前が見つからない場合
    mdlCheck = False
    Resume Exit_mdlCheck
End Function
この頁のTOPへTop
≪使い方≫

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

?mdlCheck("成績", acform)

と入力後、エンターを押してください。
もし、「成績」 フォームにコードが書かれていた場合は、「True」 が帰ってきます。
コードが無い場合は、「False」 が表示されます。
勿論通常のコードの中からも Call できます。
≪注意≫

  • acForm, acReport は、Access の組込定数です。
    それぞれ、フォーム・レポートを意味します。AcObjectType クラスの定数一覧は こちら です。

  • 指定したオブジェクトが開いていた場合、無条件に閉じてしまいます。
    フォームやレポートに変更を加えた場合は、必ず保存してからこの関数を実行してください。

  • 指定したオブジェクトがデータベースに存在しない場合、この関数は、False を返します。

  • 引数に、acForm, acReport 以外を指定した場合も、False を返します。

  • オブジェクト名の存在確認は、こちら を参考にしてください。

  • コードの有無は、手動でも確認できます。

    方法は、該当するフォーム (レポート) をデザインモードで開き、プロパティを表示します。
    その中の 「その他」 タブの一番下の方にある、
    「コード保持」 プロパティが 「はい」 となっているものにコードが存在します。

    但し、このプロパティを 「はい」 から 「いいえ」 に変更すると、
    書かれていたコードが 削除 されてしまいますので 注意してください。

     ( クラスモジュールの削除 を参照)


この頁のTOPへTop

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

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

Copyright(C) pPoy 2005