びぃ〜さんのおかげで片付いたようですが、びぃ〜さんの発言でちょっといい気になって、 Input Validationを使わない方法を考えてみたので、蛇足ながら一応書いてみます。 1.サブフォームの「申請」アクションの一番最初に、以下の3行を追加します。 FIELD CheckFlg := "0"; @Command ( [ViewRefreshFields] ); @If ( CheckFlg="1"; @Return("") ; "" ); これで、「申請」ボタンが押された時には、最初に CheckFlgが "0"の状態でフォームの PostRecalcが実行されると思います。 ホントはここでフォームの入力チェック用の共通関数を Callしたかったのですが、でき ない(?)ようなので、代わりにViewRefreshFieldsを利用してPostRecalcを呼出すよう にしました。 2.フォームの PostRecalcの中ではフォームの全ての入力項目のチェックを行います。 Sub PostRecalc(Source As Notesuidocument) Dim Doc As NotesDocument Set Doc = Source.Document If Doc.CheckFlg(0) = "" Then <--- 新規申請書作成時の処理 Exit Sub End If If Doc.RequesterComments(0) = "" Then <--- 入力チェックの例 Doc.CheckFlg = "1" MessageBox "申請理由を入力してください。", 64, "Title" Exit Sub End If End Sub これは、 ・申請アクションで真っ先にエラーチェックしたい。 ・複数のフィールドのエラーチェックを一個所でまとめたい。 ということで考えてみたのですが、いかがでしょうか? またしてもロクな動作確認をしてませんので、数時間後に「やっぱりダメでした」の 書込みをする可能性大です。(特にフラグの初期化がうまくイメージできないので、 間違ってると悲惨なことになりそうです。。。) できれば、これを読んでる皆様に添削をお願いしたいと思います。