アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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だったらメッセージを表示するようにするなど。ただ、意図しないタイミングでメッセージが表示されたりしますので、あまりお勧めしません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!