gpt4 book ai didi

ms-access - 在 VBA 事件中传递参数

转载 作者:行者123 更新时间:2023-12-04 04:38:46 25 4
gpt4 key购买 nike

我对 Access 比较陌生,虽然我确实有一些 VB 经验,但我的问题可能非常简单,尽管我似乎不知道要搜索的术语才能找到我可以使用的答案。

我正在为我正在使用的选项卡控件创建“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

所以你会说'= refreshcontroltab([devform],3,4)'以及选择第3个或第4选项卡时,将执行刷新。

最佳答案

“我想将一些不确定数量的整数传递给函数。”

这听起来像 ParamArray给我。请参阅下面的简单功能。它将返回一组数字的总和。

Public Function AddThem(ParamArray MyNumbers()) As Long
Dim i As Long
Dim lngReturn As Long
Dim lngUBound As Long

If UBound(MyNumbers) >= 0 Then
lngUBound = UBound(MyNumbers)
For i = 0 To lngUBound
lngReturn = lngReturn + MyNumbers(i)
Next
End If
AddThem = lngReturn
End Function

请注意 ParamArray是一个 Variant 值数组。因此,在函数中,您需要验证值是否为数字以避免出现问题……问题的一个示例是在使用字符串值调用函数时出现“类型不匹配”错误: AddThem("a", "b")

关于ms-access - 在 VBA 事件中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19250167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com