• ベストアンサー

accessで未入力の場合にメッセージボックスを表示したい

アクセスのフォーム(テキストボックス)が、未入力の場合メッセージボックスを表示したいです。 【追加条件】 1.テーブルで”入力規則”、”エラーメッセージ”は使わない。 2.vbaは使わない。 3.マクロの”条件”のみで処理する。 ---------------------------------------------------- vbaを使っての方法はあるみたいですが、マクロだけで入力判定をして、未入力の場合にメッセージボックスを表示する方法はないでしょうか?

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

条件が多いですね。(^^; でも、少し面倒ですが、可能だと思いますよ。 名前を下記の様に仮定します。  フォーム名「フォーム1」  テキストボックス名「テキスト1」「テキスト2」・・・  マクロ名「マクロ1」 ----以下手順----------------------------------------------- フォーム1のイベント「更新前処理」にマクロ1を登録。 マクロ1の内容  1行目   条件:IsNull([Forms]![フォーム1]![テキスト1])   アクション:メッセージボックス  2行目   条件:IsNull([Forms]![フォーム1]![テキスト1])   アクション:イベントのキャンセル  3行目   条件:IsNull([Forms]![フォーム1]![テキスト1])   アクション:マクロの中止 チェックするテキストボックスが1つの場合は上記で終わり。 複数ある場合は、同様の処理をテキストボックス分続けます。  4行目   条件:IsNull([Forms]![フォーム1]![テキスト2])   アクション:メッセージボックス  5行目   条件:IsNull([Forms]![フォーム1]![テキスト2])   アクション:イベントのキャンセル  6行目   条件:IsNull([Forms]![フォーム1]![テキスト2])   アクション:マクロの中止   ====以下同様==== ----以上手順----------------------------------------------- 上記は、フォームの更新時にメッセージを表示します。 テキストボックスの更新時に、メッセージを表示したい場合は、 各テキストボックスの「更新前処理」にマクロを登録して下さい。 ----------------------------------------------------------- #補足 Accessの「マクロ」は、「VBA」ではありませんよ。>No1さん ExcelやWordの「マクロ」とは違い、全く別の物です。

a-z_A-Z
質問者

補足

未入力の場合はnullが発生しないみたいで、メッセージボックスがでません。 一度入力をして、取り消すとメッセージボックスがでます。 純粋に未入力の場合、メッセージボックスを表示する方法はないでしょうか?

その他の回答 (2)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

>未入力の場合はnullが発生しないみたいで、メッセージボックスがでません。 >一度入力をして、取り消すとメッセージボックスがでます。 確認してみました。少し内容を訂正します。 フォームの「更新前処理」には必ず、マクロ1を登録して下さい。 これで、内容を更新し保存する際、新規レコードを追加し保存する際に、 メッセージが表示されるはずです。 ----------------------------------------------------------- 各テキストボックスの「更新前処理」のマクロですが、 マクロ1を流用出来ると思っていましたが、テキストボックスが複数あると うまく行きませんでした。 テキストボックスにマクロを登録する場合は、 そのテキストボックスのみをチェックするマクロを、新たに作る必要があります。 ----------------------------------------------------------- 更新せずに、レコードを移動するだけでは、メッセージは出ません。 つまり、既にNullで登録されているデータのチェックは出来ません。 レコードの移動前のイベントは有りませんので、 チェックするタイミングがありません。 これは、マクロのみでは、難しいかも・・・(^^; 既にNullで登録されているデータのチェックも行いたい、と言う ご要望でしたら、もう少し方法を探ってみます。

a-z_A-Z
質問者

お礼

ありがとうございました。 謝らなければいけないことがあります。 最初に回答いただいた分で、用件が足りておりました。 思い込みで、マクロを貼り付けるところを”フォーム”ではなく”コントロール”の方に張っておりました。 マクロを"フォーム"に変更すると、ちゃんと動きました。 私は、vbaのベーシックの文字を見ると、昔のベーシック言語を思い出します。 今のベーシックと違うとわかっていても、受け入れることができません。(けっ、ベーシックか・・って感じになります。) 一応、vbaを覚えようとしているのですが、上記のような理由からすぐにvba忘れてしまいます。 だから、すべてマクロでしようと考えております。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

私はマクロ=VBAだと思っていたので、ご質問の回答は「できません」になってしまいます。

a-z_A-Z
質問者

お礼

ご意見ありがとうございます。

関連するQ&A