私は ASP.NET から Access のプログラミングへの移行を試みており、Access のサブフォームを考えるときにユーザー コントロールの観点から考えることに慣れています。私がやりたいことは、ユーザーがボタンをクリックして、ユーザーが追加のデータを入力できるコントロールを含むサブフォームをロードできるようにすることです。これが MS Access でどのように行われるかを理解するのに役立つ情報またはリソースをいただければ幸いです。サブフォームのデータをロード、アンロード、およびアクセスする方法も同様です。前もって感謝します
1 に答える
原則として、このようなサブフォームの読み込みは自動的に行われ、ユーザー側でコーディングする必要はありません。したがって、一般的には、この問題について心配する必要はなく、コーディングにかかる時間を節約して、近所の貧しい人々を助けることをお勧めします。
ただし、Access で Web フォームを作成する場合、サブフォームは使用時にのみ動的に読み込まれることに注意してください。そのため、タブ コントロールの背後にサブ フォームを配置すると、結果の Web フォーム (公開時には XAML フォームであり、フォーム コードは JavaScript に変換されます) は、サブ フォームがブラウザーに動的に読み込まれます。この設定により、Web フォームの読み込みが大幅に高速化されることは間違いありません。そのため、Web フォームの場合、そのような読み込みは動的であり、Access Web フォームのオンデマンドです。
ただし、ここでは、Access Web フォームではなく、Access クライアント フォームについて話していると思います。その場合、クライアント側では、読み込み時間はかなり速く、これを行うために開発者の時間を心配したり、必要としたり、無駄にしたりすることはほとんどありません。
ただし、場合によっては、たとえば 5 つのサブフォームをロードする必要があり、そのような時間が加算されて、ユーザーが遅延に気付き始める可能性があります。この場合、サブフォームを動的に読み込むことができます。これを行うには、サブフォーム オブジェクトのソース オブジェクト プロパティを設定します。
したがって、サブフォームは単なる「コントロール」であり、実際のフォームには関連付けられていないことに注意してください。ほとんどの Access アプリケーションで、このサブ フォーム コントロールの名前がサブ フォームと同じ名前であることがわかりましたが、必ずしもそうである必要はありません。
したがって、フォームの別のタブに変更する場合など、サブフォームを動的にロードするには、コードは次のようになります。
Private Sub TabCtl2_Change()
If Me.TabCtl2.Value = 1 Then
If Me.frmListContacts.SourceObject = "" Then
Me.frmListContacts.SourceObject = "frmListContacts"
End If
End Sub
そのため、サブフォーム コントロールをフォームに配置しても、ソース オブジェクトの設定を空白のままにすると、そのサブフォームのフォームは読み込まれず、表示されません。上記では、フォームをロードすると、ソースオブジェクトの設定が空白にならないため、サブフォームを複数回設定/ロードしようとしません。
前述のように、フォームをロードするときのほとんどの場合、サブフォームをロードして表示する必要があるため、ほとんどの典型的なアプリケーションでは上記のコードは必要ありません。