2017-11-03 115 views
0

動的に作成されたサブフォームのリストを含むポップアップフォームを作成したいとします。サブフォームの数は、親フォームのユーザーによって決定されます。VBAアクセスの他のサブフォームで動的に埋められるサブフォーム

ここでは、私がしたいことを説明するためのスケッチです。ユーザーは、「Num Branches」の値を2〜10に変更できます。この数値は、スクロール可能なボックスの下に作成されたサブフォームの数に反映されます。サブフォームはすべて同じものですから、それらを赤で概説しました。 enter image description here 私は1つのサブフォームのこの

  • 存在でき倍数を行う方法についていくつか質問がありますか?
  • 上記の質問はありませんし、私は動的に各コントロールを作成する必要がある場合、私は754の動的に作成されたコントロールを心配する必要がありますかhttps://stackoverflow.com/a/31301469/7254514
  • 誰かがいることを私にループの例を与えることができるこの回答に記載されたリミットスクロール可能なボックスの内部にこれらのサブフォームを動的に作成する方法を示します。私はそれぞれのループの間に変更される唯一のプロパティは "トップ"プロパティです。あなたが好きなものを使用することはできませんあなたはおそらく動的にサブフォームコントロールを作成する必要はありません

答えて

2

(デザインビューに切り替えコントロール=を作成するので、など、データベースに排他ロックが必要)

Accessは連続フォーム上のサブフォームコントロールを許可しないため、サブフォームの複数のインスタンスを含む連続フォーム。

私のアプローチは、フォームに10個の(あなたの最大の)サブフォームコントロールを用意し、それらをすべて非表示にして特定のソースオブジェクトに動的に割り当てることです。

擬似コード:

Dim numBranches As Long 
Dim i As Long 

For i = 1 to numBranches 
    Me.Controls("subform" & i).Visible = True 
    Me.Controls("subform" & i).Form.Filter = "branch = " & i 'Appropriate filter here 
    Me.Controls("subform" & i).Form.FilterOn = True 
Next i 
+0

私はこのアプローチを好むが、私はそれを理解すれば、私は見てみましょう。だから私のメインポップアップフォームでは、私は隠されている10の空のサブフォームコントロールがあります。あなたの擬似コードでは、これらの名前はsubform1、subform2などとなります。ポップアップフォームを開いたり、NumBranchesの値が変更されたときに、これらの空のサブフォームにデータを入力します。ポピュレートされたものは可視に設定されます。サブフォームsourceobjectsには正確に何が入りますか?これはデザインビューで作成した静的なフォームですか? –

+1

ああ、同じフォームを複数回表示しています。私は複数の形を考えていた。その場合、 '.SourceObject'部分(通常はフォーム名)は必要ありませんが、フィルタを使うことができます。すべてのフォームの '.SourceObject'をクリアして、パフォーマンスを最適化するために表示するものだけを設定することに注意してください。私はより適切な何かに私の答えを調整しました –

+0

よかった。したがって、フィルタはデータベース内のレコードのようになり、その特定のサブフォームコントロールで表現する必要があります。 –

関連する問題