Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


エラーメッセージを独自メッセージに置き換える : Access裏技Tips



Accessは、予め決められたエラーメッセージを状況に応じて立ち上がるようになっています。
ここでは、決められたエラーメッセージではなく、製作者の独自のメッセージに置き換える技を紹介します。

独自メッセージを表示させる

  1. サンプルテーブル(tbl_sample)には、ID、社員名、都道府県フィールドを作成し、都道府県フィールドは値要求を"はい"にします。
  2. このテーブルをもとに社員別出身都道府県フォーム(frm_sample)を作成します。
  3. フォーム上でのデータ入力の際、都道府県フィールドを空欄のまま、次レコードに移動します。
  4. この操作を行えば、エラーナンバー3314が発生します。
  5. フォームのエラー時イベントを利用して、エラーが発生すれば独自のメッセージを開けるようにプロシージャを記述します。

tbl_sampleテーブルの作成

  1. tbl_sampleテーブルを作成します。
  2. ID(オートナンバー型)、社員名(テキスト型)、都道府県(テキスト型)フィールドを作成します。
  3. 都道府県フィールドプロパティの値要求を"はい"に設定します。

社員別出身都道府県フォームの作成

  1. サンプルテーブルをもとに社員別出身都道府県フォームを作成します。

エラー時イベントプロシージャの作成

エラー時イベントプロシージャを作成します。

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    
    Dim strmsg As String
    strmsg = "都道府県フィールドは、データ入力が必須です。"

    Const ErrorCode = 3314 ' --- A

    If DataErr = ErrorCode Then ' --- B
        MsgBox strmsg, vbOKOnly + vbCritical
        Response = acDataErrContinue ' --- C
    End If

End Sub
解説
  1. 定数ErrorCodeを3314と定義します。この3314とは、独自メッセージに置き換える場合のエラー番号です。
  2. 引数DataErrは、エラー発生時にそのエラーのエラー番号を取得します。
    If DataErr = ErrorCode Then とは、発生したエラー番号が3314であるか否かを判断し、Ifステートメントを用いて条件分岐を行います。
  3. 引数Responseに acDataErrContinueを設定した場合は、Accessはエラーメッセージを表示しません。
今回のおすすめポイント

エラー時イベント

エラー時イベントは、フォームやレポートにフォーカスがあるときに、Accessで実行時エラーが検出されたときに発生します。 但し、VBAの実行時エラーは検出されません。

動作確認

  1. デザインビューからフォームビューに切り替えます。
  2. 都道府県テキストボックスを空白のまま、次レコードに移動を試みます。
  3. エラーが発生し、独自のメッセージが立ち上がります。

はみ出しコラム
エラー番号3314

エラー時イベントに独自のメッセージを開くプロシージャを記述していなければ、Access所定のエラーメッセージが開きます。

このメッセージには、エラー番号が明示されていません。 記載されていない場合は、エラー時イベントプロシージャを下記のように一時的に書き換えると求めることができます。

Private Sub Form_Error(DataErr As Integer, Response As Integer)

    MsgBox "エラー番号 : " & DataErr

End Sub

関連ページ

ページの先頭へ 前ページへ戻る

 


エラーメッセージを独自メッセージに置き換える : Access裏技Tips


 

-Microsoft Access Club-

cPanel あるいは PLESKコントロールパネルをインストールした専用レンタルサーバのディスカウントプランを期間限定で公開しています。
cPanel・PLESKコントロールパネルを備えた専用レンタルサーバ....。