Page 488 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼入力途中での終了 maru 04/1/9(金) 12:49 ┗Re:入力途中での終了 しのしの 04/1/16(金) 10:24 ┗Re:入力途中での終了 maru 04/1/17(土) 11:56 ┗Re:入力途中での終了 しのしの 04/1/17(土) 15:18 ─────────────────────────────────────── ■題名 : 入力途中での終了 ■名前 : maru ■日付 : 04/1/9(金) 12:49 -------------------------------------------------------------------------
親フォームで日付や記帳者等を入力後 サブフォームに移動して最初の入力作業でコンボボックスを開いて データを入力後来客があって急遽入力作業を中止することがあるんですが 親フォームの閉じるコマンドボタンを押すとMSのメッセージが出ます 内容は フィールド'車両ID'とキーが一致しているレコードをテーブル 'T車両'で探すことは出来ません と出ます 当方はエラー番号が3101だとしか解りません 色々調べて Private Sub メインパネル_Click() On Error GoTo メインパネル_Click_Err Dim MSG_RESULT As Integer ' F配車表Bの課税輸送料にゼロを入れる DoCmd.OpenQuery "Q課税輸送料更新", acNormal, acEdit ' F配車表Bの非課税輸送料にゼロを入れる DoCmd.OpenQuery "Q非課税輸送料更新", acNormal, acEdit ' F配車表Bの課税傭車料にゼロを入れる DoCmd.OpenQuery "Q課税傭車料更新", acNormal, acEdit ' F配車表Bの非課税傭車料にゼロを入れる DoCmd.OpenQuery "Q非課税傭車料更新", acNormal, acEdit ' F配車表Bの高速料にゼロを入れる DoCmd.OpenQuery "Q高速料更新", acNormal, acEdit ' F配車表Bの高速料Bにゼロを入れる DoCmd.OpenQuery "Q高速料B更新", acNormal, acEdit ' 入力画面のもどるボタン DoCmd.Save acForm, "F配車表A" DoCmd.Close acForm, "F配車表A" メインパネル_Click_Exit: Exit Sub メインパネル_Click_Err: If Err.Number = 3101 Then MSG_RESULT = MsgBox("一旦入力作業を中止しますか?", vbYesNo + vbQuestion, "終了か続行かの選択") If MSG_RESULT = vbYes Then [Forms]![F配車表A]![T配車表Bのサブフォーム].[車両ID].RecordSource = "T車両" Resume '終了するならClose Else Resume メインパネル_Click_Exit '終了しないなら、Close処理を飛ばす End If Else MsgBox Err.Description Resume メインパネル_Click_Exit End If End Sub とVBAを設定しました VBAはマクロから自動変換する程度より知りません このコードの間違いと正しいコードを教えて下さい やりたいことは途中終了の際にコマンドボタンを押したら メッセージが出て入力作業を終了するかそのまま続行するか 選択したいのです 何方か宜しくお願いします |
maru さん こんにちは。 もう、随分時間がたっているので、ご覧になっているかどうか。 ご質問を読ませていただきました。 一読しただけでは、よく理解できませんでした。 まず、どういう状況で困っていて、 それを解決するために、どういう手段を選びたいのか、 という部分が不明瞭に思えます。 ご質問に記載の 「メインパネル_Click」モジュールというのは、 「データを入力後来客があって急遽入力作業を中止する」 場合に、エラーを発生させないために、新たに追加したモジュールなのですか? (つまり新規追加したボタン名がメインパネル。) それとも、 以前からあるモジュールで、 「データを入力後来客があって急遽入力作業を中止する」場合、 このモジュールでエラーが発生していた、ということですか? ご質問にお答えしたいのですが、情報が少ないです。 できれば、親フォーム、子フォームの使用目的、レコードソースなどを教えてください。 その後、もう少し詳しく教えていただきたく思います。 |
しのしのさん 有難うございます 「メインパネル_Click」モジュールはご質問の後者のほうです 従来よりあるもので通常の入力作業を終了してメインフォームに 戻るボタンです やりたいことは途中で終了する時に「メインパネル_Click」モジュールを クリックしたらエラー3101のメッセージの変わりに 自前のメッセージでこのまま終了するか作業を継続するか 二者択一で次の行動に移りたいのです 親フォームは日付等を入力 子フォームが詳細を入力するフォームです レコードソースはうまく説明できませんので ご不快でなければメールをいただければMDBを添付して 返信させていただきますので宜しくお願い致します |
どうも、うまく伝わっていないようです。 文章力がなくて、ご迷惑をおかけしております。 >「メインパネル_Click」モジュールはご質問の後者のほうです >従来よりあるもので通常の入力作業を終了してメインフォームに >戻るボタンです とすれば、まず、エラーが発生するのは、どの部分ですか? クエリーを実行している部分なのか、 F配車表Aを閉じている部分なのかです。 Private Sub メインパネル_Click() にブレークポイントを設定してみれば分かると思います。 >親フォームは日付等を入力 >子フォームが詳細を入力するフォームです ちなみに、フォームのレコードソースは、 フォームのレコードソースを動的に取得していなければ、 フォームプロパティのレコードソースにありますよ。 エラーが発生しているのは、フォームのソースとなっている レコードで発生しているわけですから、 どういうテーブルをレコードソースにしているのか、を知りたいわけです。 >レコードソースはうまく説明できませんので >ご不快でなければメールをいただければMDBを添付して >返信させていただきますので宜しくお願い致します 自分のマシンにはACCESSはインストールされていないんです。 WINDOWSでもないし。 #サンプルコードはテキストでもっているし、 #ずっと使っていたから、たいていは分かるんですけど。 解析するなら、マシンを友人に借りなきゃいけません。 ご使用されている方が説明できないものを 短時間で解析できる自信はありません。 (万が一にでも、ウィルスがあったら....) ですから、できうる限りご説明ください。 よろしくお願いします。(ペコリ) |