![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ACCESS VBA の初心者です。
前に進まず困っておりまして申し訳ありませんが教えてください。
フォーム1にボタンをつけそのボタンを押すとフォーム2に画面遷移するように、作っています。
フォーム2に画面遷移した場合、フォーム1は不要になるので、画面遷移と同時にフォーム1を閉じたいのですが、うまく行きません。
docmd.close
と言う命令を使うとフォーム1のボタンを押すと画面遷移先のフォーム2の方が一瞬表示されてすぐに閉じてしまいます。
どうしたら、フォーム2が表示されてフォーム1が同時に閉じる事ができるでしょうか?
No.2ベストアンサー
- 回答日時:
下記で、問題なくフォーム1から、フォーム2を開き、
フォーム1を閉じます。(Access2000で確認しました)
取り合えず、下記の最小限のフォームで、動作確認してみて下さい。
フォーム1、コマンドボタン1個
----フォーム1の全コード----
Option Compare Database
Option Explicit
Private Sub コマンド0_Click()
DoCmd.OpenForm "フォーム2"
DoCmd.Close acForm, "フォーム1"
End Sub
---------------------------
フォーム2は空のフォーム
---------------------------------------------------------
>何がいけないのでしょうか・・・。
推測ですが、フォーム1の「読み込み解除時」のイベントが怪しいかも。
このイベントで、閉じる事をキャンセル出来ます。
その他の原因については、現時点では思いつきません。(^^;
もう少し詳しい情報を頂けたら、何か分かるかも・・・
---------------------------------------------------------
原因を特定するためのアドバイス(その1)
・On Error Resume Next は使わない(もし使っていれば)
・ブレークポイントを設定する(F9)
・ステップ実行で1行ずつ実行する(F8)
---------------------------------------------------------
原因を特定するためのアドバイス(その2)
まず、フォームのバックアップを取る。(コピーして貼り付け)
関係無いと思われる部分から、ソースを少しずつ削除する。
問題のボタンと、そのイベントプロシージャは残しますが、
その他のコントロールや、イベントプロシージャは削除していきます。
少し削除して、動作確認。少し削除して、動作確認。・・・
これを不具合がなくなるまで、繰り返します。
フォーム2に関しても、不要な部分を削除していきます。
不具合がなくなれば、その直前に削除した部分が怪しい。
No.3
- 回答日時:
チクッと同じような現象を再現してみました。
フォーム1:
Option Compare Database
Option Explicit
Private Sub コマンド0_Click()
On Error GoTo err_コマンド0
DoCmd.OpenForm "フォーム2"
DoCmd.Close acForm, "フォーム1"
Exit_コマンド0_Click:
Exit Sub
err_コマンド0:
Resume Exit_コマンド0_Click
End Sub
フォーム2:
Option Compare Database
Option Explicit
コード自体には問題はありません。
しかし、"フォーム2"の表示に失敗し"フォーム1"も閉じられないです。
原因は、DoCmd.OpenForm "フォーム2"でエラーが発生しているからです。
この場合、エラートラップの働きでDoCmd.Close acForm, "フォーム1"はスキップされます。
理屈の上では、これが一つの原因です。
理屈の上では、フォームの誤動作が二つ目の原因です。
肝心のコード全体を示されないと、この推測が当をえているのかも疑問。
なお、フォームの誤動作は、プロシージャの移動で発生します。
あちこちからプロシージャの切り貼りを繰り返せば、動作は保証されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
Access サブフォームでの選択行の取得
その他(データベース)
-
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
アクセスVBAのMe!と[ ]
Access(アクセス)
-
6
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
7
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
8
YES/NO型の値
Excel(エクセル)
-
9
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
新規レコード行を非表示にしたい
Access(アクセス)
-
12
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
13
Accessで別mdbのテーブルをコピー
その他(プログラミング・Web制作)
-
14
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
15
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
16
スクロールバーをVBAで操作したい
Access(アクセス)
-
17
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
18
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
19
accessでクエリの結果だけをリンクしたい。
Access(アクセス)
-
20
ACCESSで値を代入できないとは?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
モーダルフォームとモードレス...
-
VBAでユーザーフォームを再表示...
-
VBAのテキストフォームの折り返...
-
ユーザーフォームのテキストボ...
-
テキストボックス入力データの...
-
EXCEL ユーザーフォームのタイ...
-
Excelにて、ユーザーフォームで...
-
フォームのテキストボックスな...
-
'ユーザーフォーム右上隅の[×...
-
ユーザーフォーム上に現在日時...
-
VBAで画像を表示する方法
-
VBでテトリスを作りたいのです...
-
フォームの二重起動の阻止
-
Form_Load と Form_Activate の...
-
Hideについて(.NET)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
クリックイベントなのに、2回ク...
-
MSGBOXのフォント大きさ変更
-
VBAでユーザーフォームを再表示...
-
Hideについて(.NET)
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
コントロールの存在確認
-
ユーザーフォーム上に現在日時...
-
【VBAユーザーフォームで閉じる...
-
エクセルVBAのフォームを最...
-
ACCESSのフォーム、開くんです...
-
Microsoft Formsの「個人情報や...
-
VBA(エクセル)のユーザー...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
-
'ユーザーフォーム右上隅の[×...
-
Excelにて、ユーザーフォームで...
おすすめ情報