Microsoft Access 掲示板

抽出用フォームからサブフォームへの値の代入

1 コメント
views
4 フォロー

Win10Pro64bit
microsoft365access

同一顧客からの複数種類品種の受注入力をしたいです。
メインフォーム「F_受注入力_メイン」にサブフォーム「F_受注入力_サブ」を組み込んでおります。
メインフォームで顧客情報を入力しサブフォームで品種を入力する仕組みにしようとしています。
品種を抽出するために抽出用のフォーム「F_品種マスタ_抽出_受注」というフォームを開き、そこで選んだ値を「F_受注入力_サブ」に代入したいのですが、そのコードがわかりません。
「F_品種マスタ_抽出_受注」に配したコマンドボタン「受注選択」のクリック時のイベントプロシージャに以下のようなコードを書いてますがうまくいきません。

Private Sub 受注選択_Click()
  If Forms!F_品種マスタ_抽出_受注!F_品種マスタ_サブ.Form.Recordset.RecordCount = 0 Then
    Beep
    MsgBox "品種が正しく抽出されていません。", vbCritical, "在庫管理"
  Else
    Forms!F_受注入力_サブ!品種番号 = Me.F_品種マスタ_サブ.Form!品種番号
    Forms!F_受注入力_サブ.SetFocus
    Forms!F_受注入力_サブ!受注本数.SetFocus
    DoCmd.Close acForm, "F_品種マスタ_抽出_受注"
  End If
End Sub

「F_受注入力_サブ」単体で開いてる時はうまくいくのですが、「F_受注入力_メイン」のサブフォームで開いてる時はうまくいきません。

どうかお助けください!

涼子
作成: 2021/08/30 (月) 13:29:23
通報 ...
1
涼子 2021/08/30 (月) 13:54:54 1a64f@e5635

【自己解決】

以下コードで動作しました!

Private Sub 受注選択_Click()
  If Forms!F_品種マスタ_抽出_受注!F_品種マスタ_サブ.Form.Recordset.RecordCount = 0 Then
    Beep
    MsgBox "品種が正しく抽出されていません。", vbCritical, "在庫管理"
  Else
    Forms!F_受注入力_メイン!受注明細.Form!品種番号 = Me.F_品種マスタ_サブ.Form!品種番号
    Forms!F_受注入力_メイン.SetFocus
    Forms!F_受注入力_メイン!受注明細.Form!受注本数.SetFocus
    DoCmd.Close acForm, "F_品種マスタ_抽出_受注"
  End If
End Sub

Hatena様の別サイトの投稿を見つけ解決いたしました。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11130145846

サブフォームの場合メインフォームのに埋め込んでるサブフォームのコントロール名を指定しないといけないわけですね!