つい集めてしまうものはなんですか?

親フォームのコマンドボタンをクリックしたら
親フォームにはまっているサブフォームの新規レコードに移動したいのですが、
うまくできません。

サブフォームのオブジェクト名は、"F_SubForm"です。
サブフォームはデータシートビューです。

VBAコードは
Private Sub cmd_test_Click()
DoCmd.SelectObject acForm, "F_SubForm"
DoCmd.GoToRecord , , acNewRec
End Sub
です。

上記コードを実行すると
DoCmd.SelectObject acForm, "F_SubForm"
の部分で、
「実行時エラー 2489
 オブジェクトが開いていません。」
となります。

だからと言って、
DoCmd.GoToRecord , , acNewRec
だと、何も起こりません。(新規レコードに移動しません)

解決方法をご教授ください。

A 回答 (1件)

> DoCmd.GoToRecord



これは、現在フォーカスがあるフォームに対して有効だったと思うので、

> 親フォームのコマンドボタンをクリック

した状態では、
フォーカスはコマンドボタンにあり、
そのコマンドボタンは親フォームにあるので、
親フォームに対して・・・という解釈になります。

> DoCmd.SelectObject acForm, "F_SubForm"

この DoCmd.SelectObject acForm は、フォームとして起動されている・・・
組み込まれたサブフォームは、フォームとして起動されているわけではないので NG

親フォームをデザインで見た時、
サブフォームコントロール名が F_SubForm なら
サブフォームコントロールにフォーカスを移した後に、DoCmd.GoToRecord しては?

Private Sub cmd_test_Click()
  Me.F_SubForm.SetFocus
  DoCmd.GoToRecord , , acNewRec
End Sub

※ 未検証
    • good
    • 6
この回答へのお礼

どうもありがとうございました。

お礼日時:2015/01/01 18:54

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A