• ベストアンサー

フォームを閉じないようにする

×ボタンを押したときに、ダイアログ(yes&no)を出して、noならばそのまま、yesならば終了、と言う形にしたいのですが、どうもうまくいきません。 どなたか教えてください。また、フォームのUnlordイベントは使えません。

質問者が選んだベストアンサー

  • ベストアンサー
  • asobe
  • ベストアンサー率76% (10/13)
回答No.4

2005でしたか・・・。 では、FormClosingを使ってみてください。 今後は質問時に開発環境を明記しておくと良いと思いますよ。 それが解決までの近道になるでしょう。

hikkih
質問者

お礼

こちらの説明不足で^^;スミマセン。 無事に出来ました。どうもありがとうございました。

その他の回答 (3)

  • asobe
  • ベストアンサー率76% (10/13)
回答No.3

回答No1の777さんの回答では、失礼ですが不十分ですので、補足させていただきます。 メッセージに"いいえ"で答えた場合はCancelをTrueにしてあげないと、結局閉じてしまいます。 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox("終了します。よろしいですか?", vbYesNo Or vbInformation) = vbYes Then End Else Cancel = True End If End Sub なお、UnloadModeをMSDNなどで調べると分かると思うのですが、Windowsから閉じられるのか、×ボタンを押したのか等、の判定を行うことができます。

hikkih
質問者

補足

バージョンが、Microsoft Visual Basic 2005 Express Editionですが、なぜかQueryUnloadもありません。

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.2

フォームのUnlordイベントではなくQueryUnloadイベントを使えばいいですよ。

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.1

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) aa = MsgBox("終了処理します。よろしいですか?", vbYesNo, "") If aa = vbYes Then End End Sub こんな感じで良いですか?

関連するQ&A

  • フォームのちらつき

    VB6で、Yes/Noメッセージボックスを表示させ、Yesなら処理実行、Noなら何もしない・・・というプログラムを作ったのですが、Noを選択したときにフォームがちらついて、エクスプローラーが一瞬表示されてしまいます。 これを防ぐにはどうしたらいいのでしょうか? 教えてください。

  • 帳票から単票フォームへの表示がうまくいきません

    ACCESSを始めたばかりです。 帳票表示されているレコードを単票フォームで表示させたいです。 テーブル「売上データ」がありこのテーブルを使って帳票用と単票用のクエリを作成、それぞれに対してフォームを作っています。 「売上データ」には、オートナンバーで No があり、これを主キーにしてあります。 クエリ Q帳票   フォーム F帳票 クエリ Q単票   フォーム F単票 フォームF帳票には、レコード内にボタンをおきました。 ボタンには、下記のマクロをつくって イベント クリック時 のところにいれました。 マクロ フォームを開く  フォーム名 :F単票  ビュー   :フォームビュー  フィルタ名 :  Where条件式 :[No]=[Forms]![F帳票]![No]  データモード:  ウィンドウモード:ダイアログ フォームF帳票 で、検索窓を作って検索した一覧の中から単票表示したいレコードのボタンをクリックして単票フォームをダイアログで開かせたいです。 上記のようにやってみたのですが、単票フォームは開くもののデータは空白になってしまいます。 ちなみに、作ったマクロを実行してみると Forms!F帳票!No とパラメータの入力を求められるので適当な数字をいれるとその数字に該当した単票フォームが開きます。 WEBで探して同じような感じで作ってみたのですがうまくいきません。 どこが間違っているのでしょうか? ちなみにクエリ Q単票 の Noの抽出条件に[Forms]![F帳票]![No]をいれてみたりもしましたがうまくいきませんでした(空白で単票が開く) 何卒よろしくお願いします。

  • Accessのボタンコントロールについて

    Accessのフォームにて、ボタンからYes/No型の レコードを操作する手段としてはどのような方法が あるか教えて頂けませんでしょうか? イメージとしては、ボタンを押すと Yes/No型レコードのチェックをON/OFFできる形なのですが。

  • Accessのフォームを閉じるのではなく、非表示にする

    Accessのフォームにおいて、 ボタンをクリックすると、そのフォームが閉じる、 というイベントをつけております。 そのイベントを、フォームが閉じるのではなく、 フォームを非表示にし、メモリ上では開いたまま というイベントに直したいのですが、 Form_F003.Visible = False というような記述をするという 解釈でよろしいのでしょうか?? その解釈でないとしたら、 フォームのソース上で、 フォームを非表示にし、メモリ上では開いたまま というプロパティを設定できるでしょうか?? どなたか、ご指導くださいませ。

  • ACCESS チェックしたものを 印刷したい

    ACCESS初心者です テーブルでデータ型をYES/NO型にし、様々な項目とともに、フォームで表示しています。 フォーム上に印刷ボタンコマンドを作成し、チェックしたもののみ印刷したいのですが、よく分かりません。 コマンドボタンを右クリックして、イベントのビルドを開けて・・・そこからどのように入力すればいいのでしょうか。 よろしくお願いします。

  • フォームCGIの作成について教えてください。

    現在、下記のようなフォームCGIを作成したいと考えています。 ■ 自己診断(のような)フォーム ウェブ上のアンケートや占いにあるような、各々の質問に「YES」「NO」「分からない」のラジオボタンで解答をしていき、 最後に「結果を見る」ボタンで別ページに飛ぶフォームを 作成したいと思っています。 主な機能としては・・・ ・設問数は20個くらい。 ・「YES」「NO」「わからない」で、各々割り当てたポイントを プログラム内で集計。 ・上記集計点数に応じて、予めプログラム内で割り当てた各々別の診断結果ページへ遷移させたい。 上記のようなことを考えているのですが・・・ この教則本なら、近いことが学べる!などご存知の方が いらっしゃいましたら、ぜひお教え頂けないでしょうか。 (今までフリーで配布されているCGI(BBS等)は自サイトに 組み込みの経験はありますが、ゼロからCGIを作成した経験は ありません。)

    • 締切済み
    • CGI
  • Access フォームの入力について

    アクセス初心者です。 フォームA(メインとなる画面)でコマンドボタンをクリックすると フォームBが開くように設定しました。 フォームAでレコード1を入力時にコマンドボタンをクリックすると フォームBのレコード1に フォームAのレコード5を入力時にコマンドボタンをクリックすると フォームBのレコード5に移動してデータを入力できるようにすることは可能でしょうか?可能であればどのようにしたらよいでしょうか? 具体的には テーブル 社員NO、氏名・・・、希望地域(yes/no型)があります。 フォームA ・社員NO ・氏名など フォームB ・希望地域(チェックボックスでチェックする。複数選択可) フォームAを入力時にフォームBを開いて希望地域にチェックできる というようにしたいのですが、 フォームAからフォームBに移動するといつもレコード1が表示されてしまいます。 自分なりに試行錯誤しているのですがどうしてもできません。 よろしくお願いします。

  • 新しいフォームへのデータを渡したい

    Visual studio 2005にてフォームアプリケーションを作成しています。 メインとなるフォーム(form.vb)と、ダイアログ表示用のフォーム(dialog.vb)を使い、メインでの値をダイアログ用のフォームの方で表示させたいのです。 メインのTextBox1にテキストを入力させ、「実行」ボタンを押すとダイアログ表示用フォームが立ち上がり、ダイアログのTextBox1に同じものを表示させたい・・・という寸法です。 できるだけ簡素なコードでこれを行うにはどうすればいいでしょうか? よろしくお願いします。

  • 【vb.NET】フォームを閉じる際に他のフォームを制御したい

    Visual Basic 2005で学習中です。 フォーム1とフォーム2があり、 1.フォーム1からボタン1を押してフォーム2を開く。 2.フォーム1のボタン1を押下不可にする。 3.フォーム2を閉じるとフォーム1のボタン1を押せるようにする。 という処理をさせたいのですが、3.の処理がどうしてもできません。 formClosingイベントの中で、ボタン1を押せるようにする処理を書いているのですが、うまくいきません。 良い方法を教えていただきたく思います。お願いします。

  • Access2002 終了時の処理

    フォーム及びアクセスを誤って終了させることのないよう、フォーム内ボタンもしくは右上×をクリックした時、以下のモジュールで確認ボタンを表示させようとしています。 ======================== Private Sub Form_Close() '閉じるとき確認 2004/6/9 If MsgBox("システムを終了しますか?", vbYesNo + vbQuestion, _ "終了確認") = vbNo Then Cancel = False End If End Sub ======================== システムを終了しますか?のコメントとともにYes No ボタンも出ますが、Noを押しても終了してしまいます。終了しないようにするにはどのようにすればよいのでしょうか? いつもすみません。よろしくお願いします。