So-net無料ブログ作成
検索選択

VBA フォーム・レポートを閉じる [VBA]

 ACCESSフォームを閉じる時は、DoCmd.Closeを使用します。

・書式
 DoCmd.Close ObjectType, ObjectName, Save

・引数
 ObjectType
 閉じるオブジェクトの種類を指定します。
 以下のAcObjectTypeクラス定数から指定します。

名前 説明
acDatabaseProperties 11 Databaseプロパティ
acDefault -1
acDiagram 8 データベースダイアグラム(Accessプロジェクト)
acForm 2 フォーム
acFunction 10 関数
acMacro 4 マクロ
acModule 5 モジュール
acQuery 1 クエリ
acReport 3 レポート
acServerView 7 サーバービュー
acStoredProcedure 9 ストアドプロシージャ(Accessプロジェクト)
acTable 0 テーブル
acTableDataMacro 12 データマクロ

 よく使うのは、acFormacReportくらいだと思います。

 ObjectName
 閉じるオブジェクトの名前を文字列で指定します。
 フォームやレポートの名前です。
 省略すると、現在アクティブなオブジェクトが閉じられます。

 Save
 変更を保存するかどうかを指定します。
 以下のAcCloseSaveクラス定数から指定します。

名前 説明
acSaveNo 2 保存しない
acSavePrompt 0 確認を表示。
Visual Basic モジュールを閉じる場合は無視され、保存しない。
acSaveYes 1 保存するされます。

 まじめに指定するなら、acSaveNoが良いと思うのですが、制作中においては保存したい場合も多々あるので、acSavePromptが無難です。(私は省略しています。)

 フォームを閉じる例。

 フォーム上に適当にボタンを配置します。
 ボタンのクリック時イベントにコードを記述します。

Private Sub cmdClose_Click()
    
    DoCmd.Close acForm, Me.Name
End Sub

 フォームにコードを記述しているので、第2パラメタに指定する閉じる対象の名前は、「Me.Name」にしています。
 こうしておけば、他の名前のフォームで使用するときに修正が不要です。

 DoCmd.Closeは、フォームなどを閉じるための物なので、ACCESSを終了させることはできません。
 ACCESSを終了させるときは、Application.Quitを使用します。

・蛇足
 VB6でフォームを閉じる場合は、Unloadを使いますが、この方法はACCESSでは使えないようで、エラーになります。
 ACCESSではDoCmd.Closeが、正式なやり方のようです。

 また、フォームを一時的に隠す場合も、Hideではなく、Me.Visible = Falseで行います。



【2万円から3万円の、格安ホームページ作成サービス】

nice!(1)  コメント(0)  トラックバック(0) 

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
※URL(リンク)は記述できません。

トラックバック 0

トラックバックの受付は締め切りました