MENU

ACCESSを閉じる

フォーム上の「閉じる」ボタンを押させてフォームやアクセスを閉じる方法です。

目次

コマンドボタンウィザードで作成

「フォームデザイン」をクリックし、四角い「ボタン」を選択。
フォーム上にボタンを挿入します。

コマンドボタンウィザード起動。
「フォームの操作」から「フォームを閉じる」を選択。

※フォームではなくAccessを閉じるには「アプリケーション」から「アプリケーションの終了」を選択してください。

ボタンに画像表示させるかテキスト表示させるかを選択。

※個人的には融通のきく文字列が好き

ボタン名を指定。
なんでもいいですが、ここでは「close」としています。

マクロで作成

  1. ACCESSの「作成」→「マクロ」を選択
  2. アクションを選択
    • Accessの終了
       アクセス自体を閉じる
    • ウィンドウを閉じる
       フォームを閉じる
    • データベースを閉じる
       開いているAccessファイルを閉じる
  3. マクロ名をつけて保存

ボタンのプロパティシートを確認。
(F4で表示することが可能)
クリック時のところで、先ほど作成したマクロ名を選択する。

VBAで作成

「作成」から「Visual Basic」を選択すると以下のような画面が表示される。

「close」というボタンをクリックすると、Endまでの間に書き込まれたアクションを実行する、という意味。

ここで指定している「close」というボタン名は、プロパティ名の「名前」とイコールになる。

フォームを閉じる

以下を間に書き込むと、現在のフォームを閉じることができます。

DoCmd.Close acForm, Me.Name

こんな感じで。

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

「Me.Name」だと現在開いているフォームの意味ですが、フォームを指定することも可能です。
例えば「F_main」という名前のフォームを閉じたい場合、Me.Nameの代わりに“F_main”と記入します。

””は必須です。

Private Sub close_Click()
    DoCmd.Close acForm, "F_main"
End Sub

閉じるときにオプションを追加することも可能です。

  • acSaveNo    ・・・ 保存しないで終了
  • acSavePrompt  ・・・ 保存要否を確認する
  • acSaveYes    ・・・ 保存して終了
Private Sub close_Click()
    DoCmd.close acForm, Me.Name, acSavePrompt
End Sub

何も指定しない場合はデフォルトで「acSavePrompt」になります。

Accessを閉じる

ACCESSごと閉じる場合は以下を書き込みましょう。

Application.Quit

完成形はこんな感じです。

Private Sub close_Click()
    Application.Quit
End Sub

閉じる際にオプションを指定できます。

  • acQuitPrompt   ・・・  保存要否を確認させます
  • acQuitSaveAll   ・・・  保存して閉じます
  • acQuitSaveNone  ・・・  保存しないで閉じます

何も指定しない場合はデフォルトで「acQuitSaveAll」になります。

フォームを閉じて別のフォームを開く

ちょっとした応用です。
「close」と「Open」を使って、使用者に「このボタンを押して別ページに移動する」といった動作を行わせることができます。

Private Sub close_Click()
    DoCmd.close acForm, Me.Name
    DoCmd.OpenForm "F_main"
End Sub

“F_main”は、自分が開きたいフォーム名を指定してください。

閉じる際に常に最適化させる

アクセスを閉じる際に常に最適化させることが可能です。
次の一行をEnd subの前に記述します。

SetOption "Auto Compact", True
Private Sub close_Click()
    Application.Quit
  SetOption "Auto Compact", True
End Sub

広告

目次