【发布时间】:2013-10-15 12:31:00
【问题描述】:
虽然我在 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)'以及选择3rd或第4选项卡时,将执行刷新。
【问题讨论】:
-
你能提供
OnChange事件的代码吗?另外,您在哪里确定应该传递给Refresh子例程的整数列表? -
Onchange 将类似于 =Refresh(1, 2, 4) 的语法使我无法理解,因为我对访问还很陌生。这些数字将由我为数据库中的每个选项卡控件手动输入。这基本上可以做到,所以“全部刷新”只发生在我传递给刷新函数的选项卡上。如果新选项卡值 == 我传递给它的数字之一,那么它将执行刷新,否则它什么也不做。
标签: ms-access vba ms-access-2010