Microsoft Access 掲示板

メインフォームに入力しないとサブフォームに入力できないようにしたい / 27

28 コメント
views
4 フォロー
27

再送ファイルを見てみました。

「F_受注_メイン」フォームのことだと思いましたので、そのフォームを開いて試してみました。
開いた直後は、取引先コードは未入力なので、サブフォームは操作できません。
取引先コードにコードを手入力したら、サブフォームは操作できるようになりました。
コードを削除したら、サブフォームは操作できなくなります。
メインでレコード移動して、移動先が取引先コードが未入力ならサブフォームは操作できない、入力済みなら操作できます。
問題ない動作のようです。

ただし、取引先コードの横にコマンドボタンがあり、そこから別フォームを開いて、取引コードを選択して入力できるようになっていますが、それで入力した場合、サブフォームは操作できるようになりません。
このようにVBAでテキストボックスの値を更新した場合、更新後処理は発生しないためです。
下記のように別フォームを開いた後で、更新後処理を呼び出せば、別フォームで入力したときも正常に動作するようになります。

Private Sub コマンド_取引先検索_Click()

  DoCmd.OpenForm "F_取引先マスタ_抽出_受注", , , , , acDialog
  Call 取引先コード_AfterUpdate
  
End Sub
通報 ...
  • 28

    【解決】
    hatena様

    ありがとうございます!
    おっしゃっている通りの動作が再現出来ました!
    「VBAで値を更新した場合・・・」そうなのですね!?
    大変勉強になりました。

    今回も本当にありがとうございました!