Accessでエラーメッセージの表示を消したい

このQ&Aのポイント
  • Accessで修正フォームを作成し、キャンセルボタンをクリックした際にエラーメッセージが表示される問題が発生しています。
  • マクロの設定を確認し、エラーメッセージの表示を消す方法を探しています。
  • 修正を行った後にキャンセルボタンをクリックした際に、レコードの内容が変更されてしまう問題があります。
回答を見る
  • ベストアンサー

Accessでエラーメッセージの表示を消したい

いつもお世話になります。 また知恵をお貸し願えませんか。  テーブルのデータをキーを指定して呼び出し修正して更新するフォームを作成しました。 修正をしたあとの処理のため「更新」ボタンと「キャンセル」ボタンを設定しました。  修正を入力したあとに「キャンセル」ボタンをクリックした場合は正常に処理されるのですが、 何も修正入力せずに「キャンセル」ボタンをクリックすると(内容を確認したいだけ、違うレコードを 呼び出した等)   コマンドまたはアクション’元に戻す’は無効です というエラーメッセージが表示されます。 OKをクリックすれば処理は進められるのですが、できればエラーメッセージは表示させたくないと 思います。  「キャンセル」ボタンのプロパティでクリック時の[埋め込みマクロ]で下記のように指定しています。    条件        アクション        引数 エラー時        次、            コマンドの実行    元に戻す [MacroError]<>0 メッセージボックス  =[MacroError],[Description],はい,なし            閉じる         ,,確認 元に戻すがエラーになっているので 閉じる 以外を消去してところ エラーメッセージは表示されませんでしたが、修正を行ったあとに「キャンセル」ボタンを クリックしてもレコードの内容が変更されていたため元に戻しました。 どのように指定すればよいでしょうか

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

  • ベストアンサー
回答No.1

修正したときのみ、「元に戻す」を実行するようにすればいいでしょう。 修正したかどうかは Dirtyプロパティで調べられます。   条件              アクション        引数 [Forms]![フォーム名].[Dirty]  コマンドの実行    元に戻す

crabcan
質問者

お礼

いつもありがとうございます。おかげさまで解決しました。 教えていただくたびに新しいことが出てきて勉強になります。 また宜しくお願いします。

関連するQ&A

  • ACCESSキャンセル時の確認メッセージを非表示に

    顧客情報を入力する単票フォームを作成しています。 データが勝手に書き換わってしまわないように、 更新確認メッセージを表示させ、 キャンセルが押された場合は、編集を取り消す。ということがしたいのです。 現在、ある本の例を元に下記の記述をしています。 ------------------------------ Private Sub Form_BeforeUpdate(Cancel As Integer) Dim myans As Integer myans = MsgBox("レコードを更新します。よろしいですか?", vbOKCancel + vbQuestion, "更新確認") If myans = vbCancel Then Cancel = True Me.Undo End If End Sub ------------------------------ キャンセルを押したときに、 このレコードは保存できません。 オブジェクトを閉じてもよろしいですか?と確認メッセージが出てしまいます。 文頭に、DoCmd.SetWarnings Falseなどを入れてみたのですが、ダメでした。 本当は、「登録」というボタンを作成し、 登録が押されたときに上記の処理&レコード更新を行いたいのですが記述がわかりません。 登録ボタンに上記の記述をすると、閉じるを押したときに、 再度、同じ更新確認メッセージが表示されてしまいます。 (1)今の記述で、キャンセル時の確認メッセージを非表示にする (2)登録ボタンにこの動作をつける どちらでも構いません。 よろしくお願いいたします。

  • ACCESS エラーメッセージ表示されない理由

    ACCESSのエラーメッセージ表示について教えてください。 ACCESS2000でマクロを作成しました。 あるデータを読み込み、テーブルへ反映させるマクロです。 マクロを直接実行すると、データが存在しないとき、当然、エラーメッセージが表示されます。 ところが、このマクロをフォームから実行させると、同じ状況でエラーメッセージが表示されません。 どこに問題があってメッセージが表示されないものなのでしょう。(正常系の処理は正しく行われます) フォームのボタンにマクロの実行を定義しただけなのですが。 VBAを開いてみても、下記のとおりクリックされたときエラーならメッセージを表示しなさいと定義されています。 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click   Dim stDocName As String   stDocName = "マクロ名"   DoCmd.RunMacro stDocName Exit_コマンド1_Click:   Exit Sub Err_コマンド1_Click:   MsgBox Err.Description   Resume Exit_コマンド1_Click End Sub

  • access 自作の移動ボタンのエラーについて。

    よろしくお願いします。 仕様環境 WinXP アクセス2002 アクセスを使ってとある管理表を作っているのですが、 一番下にある「レコードの移動ボタン」が小さいので、 わかりやすくするため、いろいろ調べ自分で コマンドボタンとテキストボックスで作りました。 機能は問題なくしているのですが、 レコードを先に進めていき、最後のレコードから 更に次へ進めると、エラーが発生します。 ■ エラー名 コマンドまたはアクション'次のレコードへ'は無効です。 次のレコードがないため、エラーが発生するのはわかるのですが、 これをコマンドボタンを”グレーアウト”にしたり、 または「次のレコードはありません」というメッセージが 出るようにしたいのですが、何か方法はあるでしょうか? 同じくレコードを前に進めていっても同じく、 もう進めないところまでいくと、エラーが発生します。 ■ エラー名 コマンドまたはアクション'前のレコードへ'は無効です。 アクセス既存のマクロで解決を図りたいのですが模索中です。 よろしくお願いします。 ※画像も添付しておきます。

  • [ACCESS]マクロを中止した際のエラー回避

    お知恵を拝借したいです。 フォームに、コマンドボタンを作成しています。 クリックすると、「クエリA」が開いてくるマクロを登録していますが、クエリAはパラメータを聞いてきます。 パラメータ入力画面を[キャンセル]した場合、「アクションの実行エラー」が出てしまうのですが、VBAを使わずに、このエラーを回避する事は可能でしょうか? [クエリを開く]アクションの後に、[イベントのキャンセル]や[マクロの中止]を設定しても、無意味でした。 やはり、VBAを使わないと無理な処理なのでしょうか。

  • access2003のエラーについて!!

    access2003のエラーについて!! ACCESSでデータを入力中に突然テーブルのレコードが「レコード削除された」のメッセージが表示され、レコードが消えてしまいました。 また、フォームでは、レコードが表示されていないにもかかわらず、データが表示されます。 新規にレコードを作製しようとしても「レコードは削除されています」のメッセージが表示され、 作成できません。 この状態を、元に戻す方法はないでしょうか?

  • ACCESS2000のフォームについて

    フォーム(←単票形式の)のデザインビューで、ツールボックスから、コマンドボタンウィザードを使い、コマンドボタンを作りましたが、ウィザードの最後のボタン名を指定するところで、漢字変換ができず、困っています。 いつもひらがなにしか入力が出来ないのですが、ここで直接漢字入力にするにはどういう処置をすればいいですか。 それから、追加の質問ですが、 作ったコマンドボタン(←レコード削除用)で、レコードを削除しようとしたところ、「リレーションシップが設定されたレコードが、テーブルにあるため、レコードの削除や変更を行えません。」と、エラーメッセージが表示されます。 レコードをフォームから削除するにはどうすればいいですか。 (※無理にしたいわけではないが、そういう命令も勉強の一環でして見たいのです。) 宜しくお願いします。

  • Accessでのレコードの削除時の表示について

    いつもお世話になります。基本的なことかもしれませんがAccess初心者でよくわからないので 教えて下さい。 Access2010でテーブルからレコードを読み出すフォームを作成し、そのレコードを削除するため、 フォーム上に削除ボタンを設定しました。 削除ボタンをクリックすると小さなウインドウが開き下記のようなメッセージが表示されます。           1件のレコードを削除します。     「はい」をクリックすると、削除したレコードを元に戻すことはできません           「はい(Y)]   「いいえ(N)] メッセージのウインドウの下には読みだしたレコードのフォームが表示されていますが、 キーとなる顧客コード(数字6桁)の欄には #エラー と表示され、その他の項目はすべて ブランクになります。 「はい」をクリックするとレコードは削除されるので処理的には問題ないのですが、 削除する前に確認するためフォーム上の項目を表示したまま残したいです。 どのようにすればよいでしょうか? 削除ボタンのクリック時の埋め込みマクロの内容は以下のように設定しています。  エラー時         移動先 次         マクロ名  コントロールの移動     コントロール名 = [Screen].[PreviousControl].[Name]  マクロエラーのクリア   If not [Form].[Newrecord] Then     メニューコマンドの実行           コマンド レコードの削除 If文の最後   If [Form].[Newrecord] And Not [Form].[Dirty] Then 警告文 If文の最後   If [Form].[Newrecord] And [Form].[Dirty] Then     メニューコマンドの実行           コマンド レコードを元に戻す If文の最後   If [MacroError] <> 0 Then メッセージボックス           メッセージ = [MacroError].[Description] 警告音 はい        メッセージの種類 なし      メッセージのタイトル If文の最後  ウインドウを閉じる   オブジェクトを閉じる    オブジェクトの種類      オブジェクト名    オブジェクトの保存 確認 参考にしたAccessのプログラムから削除ボタンをコピーしたため、これが適しているかどうか わかりません。 よろしくお願いします。   

  • Access「レコードの移動」マクロについて

    表形式でフォームを作っています。 そして、コマンドボタンを使って、「レコードの移動」ができるように、マクロを使って アクション 「レコードの移動」 ---アクションの引数---- オブジェクトの種類---フォーム オブジェクト名-------問題 レコード-------------次のレコード オフセット-----------4 としています。(コマンドボタンを1回押すと、4件ごとに画面を動かしたい) しかし、 問題NO---------問題 1----------なん 2----------ああ 3----------なな 4----------ああ  □←これがコマンドボタン コマンドボタンに「クリック時」にマクロが実行できるように設定をして クリックすると 問題NO---------問題 2----------ああ 3----------なな 4----------ああ 5----------いい  □←これがコマンドボタン となってしまいます。そして再度コマンドボタンを押すと 9----------がが 10---------ss 11---------ff 12----------ああ  □←これがコマンドボタン ------------------------------------- になってしまいます。なので、オフセットを4から7に変えると 1回コマンドをクリックすると先頭にくる番号は「8」になったり・・・困りました。 で、フォームには1-4のレコードが表示されるようにし、コマンドボタンを1回押すと5-8、9-12と表示させたいのです。 とできれば、(全部で160行あるのですが)最終行のフォームが出てきて、コマンドボタンをクリックしてもマクロ実行エラーが出ないようにもしたいです。 よろしくお願いします。 Accsee2000 WIN98

  • accessでのマクロの条件入力でのエラー

    かなり初歩的な質問で申し訳ありませんがよろしくお願いいたします。 ACCESSで、簡単なフォームを作り、ボタンを一つ作って そのボタンを押すと削除されるようなマクロを作りました。 (1)アクション=メッセージの設定    因数=いいえ (2)条件=MSGBOX("削除しますか",36,"確認")=6  アクション=コマンドの実行  因数=レコードの削除 というふうに作ったのですが、(2)の「MSGBOX("削除しますか",36,"確認")=6」と入力すると、パーズできません、とエラーが出てしまいます。それはどういう意味なのでしょうか。そもそもやり方が間違っているのでしょうか・・・・。

  • アクセスのエラー??

    前任者が作った個人的なアクセスシステムで、印刷ボタンを押すと「実行時エラー’2501’Open Reportアクションの実行はキャンセルされました。」Visual Basicコードでアクションを実行するDoCmdオブジェクトのメソッドを使おうとしましたが、表示されたダイアログボックスで(キャンセル)がクリックされました。たとえば、Closeメソッドを使って変更を行ったフォームを閉じる場合に、変更内容を保存するかどうかを確認するダイアログボックスで(キャンセル)がクリックされました。といったエラーが出て⇒デバッグするか終了の選択が出ます。何もキャンセルなどしてないのですが、どうすればいいでしょうか?ちなみに、終了して再度、印刷ボタンを押すと、実行時エラー91(オブジェクト変数またはWithブロック変数が設定されていません。)というのが、出ます(;_;)私はほとんどアクセスは、わかりません。どなたか詳しい方宜しくお願いします。