• 締切済み

ACCESS メインFに入力後でなければサブFに入力出来ないようにするには?

 メインフォームに必要事項を入力後でなければ、詳細を入力するサブフォームに入力ができないようにしたいのですが、どうしたら良いでしょうか?  できれば、サブフォームのコントロールに触れると「必要事項を入力して下さい」とメッセージが出るような形にしたいのですが・・。 良い方法がありましたら教えて下さい。

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

>メインフォームに必要事項を入力後でなければ、詳細を入力するサブフォームに >入力ができないようにしたい… このような処理はVBAで行います。以下の内容は、私の力量不足のため少々難解かもしれません。読み取っていただければ幸いです。 例えば、必要事項が複数ある場合は、どのタイミングでサブフォームの入力許可を処理するのか、様々ケースが考えられます。話が大きくなりすぎますので、もう少し的を小さく絞って、条件を次の様に設定させて下さい。 <条件> 「テキストボックス[TextBox1]に何か入力されていれば、サブフォーム[SubForm]への入力を許可する」としましょう。 <処理> [TextBox1]の AfterUpdate イベントで、サブフォームのプロパティーを切り替えます。以下のコードは[TextBox1]に何か入力されると、SetFormProperty プロシージャーを呼び出してサブフォームをコントロールします。 Private Sub TextBox1_AfterUpdate()   If txtCode <> "" Then     SetFormPropaty (True)   Else     SetFormPropaty (False)   End If End Sub 'サブフォームの制御 Private Sub SetFormPropaty(SW As Boolean)   'この中にいろいろな処理を書いておきます。   '不必要な制御はコメントアウトして下さい。   With Me.SubForm.Form     .AllowAdditions = SW 'レコード追加の可否     .AllowEdits = SW 'レコード編集の可否     .AllowDeletions = SW 'レコード削除の可否   End With End Sub レコード移動時やフォーム開いた時のイベントなど、SetFormProperty を呼び出すタイミングを応用すれば、ご希望の動作が実現できると思います。 >サブフォームのコントロールに触れると「必要事項を入力して下さい」と >メッセージが出るような形にしたい・・ サブフォームのEnterイベントにメッセージを表示する処理を書き込みます。例えば、先の例ですと、サブフォームのAllowAdditionsプロパティーを調べて、Falseだったらメッセージを表示するようにするなど。ただ、意図しないタイミングでメッセージが表示されたりしますので、あまりお勧めしません。

関連するQ&A