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


印刷キャンセルのエラーメッセージを独自メッセージに置き換える : Access裏技Tips



レポート印刷を開始してから、印刷を中止する場合は、[キャンセルボタン]をクリックすることで印刷を中止することができます (一瞬のうちに過ぎ去る場合が多々ありますが…)が、表示されるエラーメッセージが初心者の方の誤作動を招く可能性があります。 ここでは、この難解なエラーメッセージを独自のメッセージに置き換える技を紹介します。

エラーメッセージを独自メッセージに置き換え

  1. サンプルテーブル(tbl_sample)をもとにして、「日次売上げ一覧リスト」の 帳票レポート(rpt_sample)を作成します。
  2. 印刷専用フォーム(frm_sample)からコマンドボタンをクリックして印刷を行います。
  3. 印刷をキャンセルするとエラー番号2501が発生しますので、エラー処理のプロシージャ内でメッセージを表示します。

印刷開始メッセージとキャンセルエラーメッセージ

  1. 印刷が始まるとメッセージが表示されます。

  1. [キャンセル]ボタンをクリックすると、実行時エラー2501が発生します。
  2. Access既定のエラーメッセージが表示されます。
  3. このエラーメッセージのフォーカスが[デバック]ボタンにあるため、初心者の方がクリックし誤作動を招く可能性が高くなります。

今回のおすすめポイント

デバック

コンピュータプログラムの誤りを探し、取り除くことを意味します。
Accessでは、この[デバッグ]ボタンを押すと、VBE(Visual Basic Editor)画面が開き、エラーが発生した行が黄色(既定色)で強調されます。
管理者にとっては有益な機能ですが、ユーザーにとっては混乱を招くものに過ぎません。
また、プログラムの進行がその時点で停止してしまいますので、実行時エラーメッセージを発生させないよう、エラー処理の記述が大事です。

印刷を行う専用フォームの作成

エラー処理を記述した印刷を行うプロシージャを作成します。

  1. 新規フォームを作成します。
  2. コマンドボタンを作成します。

コマンドボタンのクリック時イベントプロシージャの作成

コマンドボタンのクリック時イベントプロシージャを作成します。

Private Sub cmd_1_Click()

    On Error GoTo エラー

    DoCmd.OpenReport "rpt_sample" ' --- A

    Exit Sub ' --- B

エラー

    If Err.Number = 2501 Then ' --- C
        MsgBox "印刷をキャンセルしました。"
    Else ' --- D
        MsgBox "予期せぬエラーが発生しました。" & Chr(13) & _
                "エラー番号: " & Err.Number & Chr(13) & _
                "エラー内容: " & Err.Description
    End If
    End

End Sub
解説
  1. 印刷が実行されます。
  2. エラー処理を記述した場合、Exit Sub で通常処理エリアとエラー処理エリアを区分します。
  3. [キャンセルボタン]をクリックすると実行エラー(エラー番号2501)が発生しますので、エラー処理に移動します。
  4. エラー番号2501以外の場合は、Access既定のメッセージを表示します。
今回のおすすめポイント

Errオブジェクト

Errオブジェクトは、実行時エラーに関する情報を保有しています。このオブジェクトに続けて、各種のプロパティで情報を取り出すことができます。

  • Err.Number : エラー番号
  • Err.Description : エラー内容

ユーザーに独自メッセージの表示

エラー番号2501が発生した場合、独自のメッセージを表示する。

今回のおすすめポイント

Chr 関数

Chr 関数で、引数に13を指定したChr(13)は、MsgboxやInputBox関数のメッセージ内で改行を含めることができます。 また、改行定数vbNewLineを利用することもできます。

関連ページ

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

 


印刷キャンセルのエラーメッセージを独自メッセージに置き換える : Access裏技Tips


 

-Microsoft Access Club-

Parallels社PLESKコントロールパネルの操作情報を発信しています。
Parallels社PLESKコントロールパネルの操作情報を発信中・・・。