Page 623 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼メインフォームの非保存終了 ビバ!ジャイアンツ 04/5/12(水) 14:53 ┗Re:メインフォームの非保存終了 クロ 04/5/12(水) 18:01 ┗Re:メインフォームの非保存終了 ビバ!ジャイアンツ 04/5/12(水) 18:16 ─────────────────────────────────────── ■題名 : メインフォームの非保存終了 ■名前 : ビバ!ジャイアンツ <t1312865@hotmail.com> ■日付 : 04/5/12(水) 14:53 -------------------------------------------------------------------------
If Me.dirty and Me.サブフォーム.form.recordset=0 Then DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70'[編集]の[元に戻す] End if 'データ入力が中途半端なときに、フォームを非保存で終了する。 としたのですが、フォーカスがメインにあるときはうまく機能してくれるのですが、サブ フォームに移動した後、メニューの[編集]の[元に戻す]が使用不能の状態になり、うまく 機能してくれません。なにかよい方法はないでしょうか? |
メインからサブに移った段階でメインのレコードは確定 されていますので、直前のアクティブフォーム名で判断 してレコードを削除するからアンドゥするでは如何で しょうか? If Me.dirty and Me.サブフォーム.form.recordset=0 Then If Screen.ActiveForm.Name = "サブフォーム名" Then DoCmd.RunCommand acCmdDeleteRecord Else DoCmd.RunCommand acCmdUndo End If End If |
▼クロ さん: >メインからサブに移った段階でメインのレコードは確定 >されていますので、直前のアクティブフォーム名で判断 >してレコードを削除するからアンドゥするでは如何で >しょうか? > >If Me.dirty and Me.サブフォーム.form.recordset=0 Then > > If Screen.ActiveForm.Name = "サブフォーム名" Then > DoCmd.RunCommand acCmdDeleteRecord > Else > DoCmd.RunCommand acCmdUndo > End If > >End If クロさん、ありがとうございます。結構簡単なことであったんですね。まぁ、削除することはどうかと思いましたが、それしか方法はありませんね。 例:野球の試合をメインフォーム、試合の選手をサブフォームとした場合、中途半端な雨で1回表が始まらずに試合が中止になったとき、試合がカウントされないようにする。というような場合に有効です。 クロさん、ありがとうございました。 |