- ベストアンサー
accessで未入力の場合にメッセージボックスを表示したい
アクセスのフォーム(テキストボックス)が、未入力の場合メッセージボックスを表示したいです。 【追加条件】 1.テーブルで”入力規則”、”エラーメッセージ”は使わない。 2.vbaは使わない。 3.マクロの”条件”のみで処理する。 ---------------------------------------------------- vbaを使っての方法はあるみたいですが、マクロだけで入力判定をして、未入力の場合にメッセージボックスを表示する方法はないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
条件が多いですね。(^^; でも、少し面倒ですが、可能だと思いますよ。 名前を下記の様に仮定します。 フォーム名「フォーム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の「マクロ」とは違い、全く別の物です。
その他の回答 (2)
- venzou
- ベストアンサー率71% (311/435)
>未入力の場合はnullが発生しないみたいで、メッセージボックスがでません。 >一度入力をして、取り消すとメッセージボックスがでます。 確認してみました。少し内容を訂正します。 フォームの「更新前処理」には必ず、マクロ1を登録して下さい。 これで、内容を更新し保存する際、新規レコードを追加し保存する際に、 メッセージが表示されるはずです。 ----------------------------------------------------------- 各テキストボックスの「更新前処理」のマクロですが、 マクロ1を流用出来ると思っていましたが、テキストボックスが複数あると うまく行きませんでした。 テキストボックスにマクロを登録する場合は、 そのテキストボックスのみをチェックするマクロを、新たに作る必要があります。 ----------------------------------------------------------- 更新せずに、レコードを移動するだけでは、メッセージは出ません。 つまり、既にNullで登録されているデータのチェックは出来ません。 レコードの移動前のイベントは有りませんので、 チェックするタイミングがありません。 これは、マクロのみでは、難しいかも・・・(^^; 既にNullで登録されているデータのチェックも行いたい、と言う ご要望でしたら、もう少し方法を探ってみます。
お礼
ありがとうございました。 謝らなければいけないことがあります。 最初に回答いただいた分で、用件が足りておりました。 思い込みで、マクロを貼り付けるところを”フォーム”ではなく”コントロール”の方に張っておりました。 マクロを"フォーム"に変更すると、ちゃんと動きました。 私は、vbaのベーシックの文字を見ると、昔のベーシック言語を思い出します。 今のベーシックと違うとわかっていても、受け入れることができません。(けっ、ベーシックか・・って感じになります。) 一応、vbaを覚えようとしているのですが、上記のような理由からすぐにvba忘れてしまいます。 だから、すべてマクロでしようと考えております。
- pbforce
- ベストアンサー率22% (379/1719)
私はマクロ=VBAだと思っていたので、ご質問の回答は「できません」になってしまいます。
お礼
ご意見ありがとうございます。
補足
未入力の場合はnullが発生しないみたいで、メッセージボックスがでません。 一度入力をして、取り消すとメッセージボックスがでます。 純粋に未入力の場合、メッセージボックスを表示する方法はないでしょうか?