質問: サブフォームの新規レコードに移動したい アクセス 親フォームのコマンドボタンをクリックしたら 親フォームにはまっているサブフォームの新規レコードに移動したいのですが、 うまくできません。 サブフォームのオブジェクト名は、"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 だと、何も起こりません。(新規レコードに移動しません) 解決方法をご教授ください。
回答: > 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 ※ 未検証