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_受注入力_メイン」のサブフォームで開いてる時はうまくいきません。
どうかお助けください!
【自己解決】
以下コードで動作しました!
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
サブフォームの場合メインフォームのに埋め込んでるサブフォームのコントロール名を指定しないといけないわけですね!