Я относительно новичок в доступе, хотя у меня есть некоторый опыт работы в VB, мой вопрос, вероятно, очень прост, хотя я, похоже, не знаю терминологию для поиска, чтобы найти ответ, который я могу использовать ,Передача параметров в событиях VBA
Я создаю событие «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
Update
Я думал, что буду обновлять свой окончательный код, если кому-то это понадобится в будущем, спасибо за вашу помощь!
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)» и при выборе третьей или четвёртой вкладке освежать будет выполнена.
Можете ли вы предоставить код для события OnChange? Кроме того, где вы определяете список целых чисел, которые должны быть переданы подпрограмме 'Refresh'? –
Onchange будет что-то вроде = Refresh (1, 2, 4), синтаксис для этого ускользает от меня, так как я довольно новичок в доступе. Числа будут вводиться вручную вручную для каждого элемента управления вкладкой в моей базе данных. В основном это приведет к тому, что «обновить все» произойдет только на вкладках, которые я передаю в функцию «Обновить». Если новое значение tab == - одно из чисел, которое я передал ему, то оно будет делать обновление, иначе оно ничего не сделает. – Newd