尽管我在 VB 方面确实有一些经验,但我对 Access 还是比较陌生,我的问题可能很简单,尽管我似乎不知道要搜索的术语以找到我可以使用的答案。
我正在为正在使用的选项卡控件创建“OnChange”事件,我想将不确定数量的整数传递给函数。即:
=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
So one change you would say '=RefreshControlTab([DevForm],3,4)' and when the 3rd or 4th tab is selected a refresh will be performed.