• ベストアンサー

入力規則違反-任意のエラーメッセージの表示

Access初心者です。 フォーム上のテキストボックスのプロパティから「入力規則」を設定し、条件違反の場合には任意のエラーメッセージを表示したいと考えています。 プロパティの「エラーメッセージ」に複数行のメッセージを表示することは可能でしょうか。 また、メッセージボックスの題名を変更したり、記号を「情報」マークから「警告」マークなどに変更することはできますでしょうか。 方法をご存知の方、ご教示いただければ幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

テーブルの入力規則の下のエラーメッセージに、複数行になるようにChr(10)など入れさせてくれないようです。(*A) ーー ただしCtrl+ENTERで、その後に文字列を続けると、入力時には2行になるようです。質問者のケースはそれで済むのかな。 ーー 質問のようにテーブルを元に(入力用)フォームをつくり(下記例では身長)フィールドのイベントの更新前処理に Private Sub 身長_BeforeUpdate(Cancel As Integer) Dim message As String, title As String Dim i As Long If (身長 < 150) Or (身長 > 200) Then message = "身長は 150 以上" & Chr(10) & "200 以下です" & Chr(10) & _ "低すぎたり高すぎます" title = "警告" i = MsgBox(message, vbOKOnly, title) Cancel = True Else Cancel = False End If End Sub を入れて、フォームの表示をして、入力してみると 範囲外の場合エラーメッセージは2行以上に出来ました。 ーー マクロでも入力規則そのものの設定はさせてくれないようです。(*B) またエクセルのように入力規則そのもののコードによる設定もさせてくれないようです。(*C)。ExcelではRangeに対するValidationのように。 ーー *A、*B、*Cは絶対か?といわれると自信ないですが、まず間違いないと思います。

taka_0120
質問者

お礼

imogasiさん、ありがとうございました。 非常に丁寧なご解説をいただき、感謝いたします。 ご指摘のように、マクロではやはり、「入力規則そのもの」の設定はさせてくれないようです。 VBAのコードについても、ご自身でテストの上、詳細な具体例を挙げていただき、初心者として心強い限りです。 複数行のメッセージを表示させることが出来ました。ありがとうございました。 もし余裕がございましたら、 (1)メッセージボックスに「!」「?」などの記号を表示する方法 (2)上記例で、2つ目の「& Chr(10) & 」の後にのみ「_」が付く理由 についてもご教示いただければ幸いです。

その他の回答 (2)

回答No.2

複数行のメッセージを入力するなら、エラーメッセージの入力で ctrl+Enter で改行すると、複数行入力できます。 またはvbaから設定すればできます。 あとの2つはわかりませんが・・・

taka_0120
質問者

お礼

fumufumu_2006さん、一つ一つに丁寧なご回答ありがとうございました。 参考になりました。 さっそく試行させていただきます。

noname#79209
noname#79209
回答No.1

テキストボックスの「更新後」インベントプロシージャに書いた方が良いように思いますが。 あるいは入力規則にチェック用のユーザー定義関数を指定するとか...

taka_0120
質問者

お礼

vizzarさん、たびたびありがとうございました。 参考にさせていただきます。

関連するQ&A