私はVBでの経験はありますが、Accessには比較的慣れていません。使用できる答えを見つけるために検索する用語を知らないようですが、私の質問はおそらく非常に単純です。
使用しているタブ コントロールの「OnChange」イベントを作成中です。不明な量の整数を関数に渡したいと考えています。IE:
=myFunction(1,4,6)
または =myFunction(ArrayList[1,2,4])
これらの数値を扱うオーバーロードされた関数を作成するか、可能であれば整数の配列として渡したいと思います。私の人生では、これを行う方法を正確に理解することはできません。私がこの道を選んだ理由は、関数を可能な限り普遍的なものにするためです。基本的には、関数に送信する数値を変更して動作を変更するだけです。
これは私がやろうとしていることの大まかなコーディングですが、次のようなもの以外に何かを渡す方法はわかりません=myFunction([Form])
Public Function Refresh(tabsToCheck As ArrayList)
For Each o In tabsToCheck
If Me.DevForm.Value = o Then
RefreshAllForms
End If
Next o
End Function
Public Function RefreshAllForms()
Dim f As Form
For Each f In Access.Forms
f.Refresh
Next
End Function
アップデート
将来誰かがこれを必要とする場合に備えて、完成したコードで更新すると思いました。助けてくれてありがとう!
Public Function RefreshControlTab(ctrl As Access.Control, ParamArray TabsToRefresh())
Dim i As Long
Dim lngUBound As Long
If UBound(TabsToRefresh) >= 0 Then
lngUBound = UBound(TabsToRefresh)
For i = 0 To lngUBound
If ctrl.Value = (TabsToRefresh(i) - 1) Then
RefreshAllForms
End If
Next
End If
End Function
Public Function RefreshAllForms()
Dim f As Form
For Each f In Access.Forms
f.Refresh
Next
End Function
つまり、'=RefreshControlTab([DevForm],3,4)' と変更すると、3 番目または 4 番目のタブが選択されたときに更新が実行されます。