- 締切済み
サブフォームの並べ替えをVBAで指定したい
親フォームを開くときにサブフォームの並べ替えを実行したいのですが 親フォームのフォームモジュールに Private Sub Form_Load() With Me.Controls("サブフォーム ") .OrderBy = "日時 DESC" .OrderByOn = True End With End Sub としてるのですが、 OrderByの部分で、 実行時エラー438になります。 サブフォーム名は「サブフォーム」です。 サブフォームの中に日時と言うコントロールは存在します。 なぜエラーになるのでしょうか? ちなみにOrderByをなくしても .OrderByOn = True で同じエラーが発生します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hatena1989
- ベストアンサー率87% (378/433)
回答No.1
メインフォームからサブフォームを参照する場合の構文は、 Me.サブフォームコントロール名.Form となります。 サブフォームとサブフォームコントロールは異なりますので注意してください。 サブフォームは、メインフォーム上にサブフォームコントロールを介して配置されています。 With Me.サブフォームコントロール名.Form .OrderBy = "日時 DESC" .OrderByOn = True End With なお、「日時 」はサブフォームのレコードソースにあるフィールド名である必要があります。