Управление Subform в Subform
Я создаю функцию для обхода всех элементов управления в форме и применяю событие, если это текстовое поле / выпадающий список / список, функция также проверяет, является ли элемент управления подчиненной, и запускаю ту же функцию для элементов управления подчиненной формы. У меня проблема, если есть другая подчиненная форма в подчиненной форме, я не могу перебрать элементы управления.
Public Function FE_LoopThroughAllControlsNumLockOn(frm As Form)
Dim ctl As control
For Each ctl In frm
If ctl.ControlType = acSubform Then
Call FE_LoopThroughAllControlsNumLockOn(frm(ctl.Name).Form) 'Error here on subform within subform
ElseIf xIsControlForEventNumLock(ctl.ControlType) = True Then
ctl.OnGotFocus = "=FM_NUM_ON()"
End If
Next ctl
Set ctl = Nothing
End Function
Function xIsControlForEventNumLock(vControlType As AcControlType) As Boolean
Select Case vControlType
Case Is = acComboBox: xIsControlForEventNumLock = True
Case Is = acListBox: xIsControlForEventNumLock = True
Case Is = acTextBox: xIsControlForEventNumLock = True
Case Else: xIsControlForEventNumLock = False
End Select
End Function
Если я попробую следующее, это сработает:
Debug.Print Forms!frmHR_Details!frm_HRDetails2.Form!HRSubForm2.Form!sID
Но это не так, почему?
Debug.Print Forms("frmHR_Details").Form("frm_HRDetails2").Form.Form("HRSubForm2").Form.sID.Value
Или, может быть, нет способа сделать это:
set ctl = Eval("Forms!frmHR_Details!frm_HRDetails2.Form!HRSubForm2.Form!sID")
1 ответ
Посмотрите на эту ссылку.
http://access.mvps.org/access/forms/frm0031.htm
To refer to a control property, like Enabled
On Mainform
Me!ControlName.Enabled Me.Parent!ControlName.Enabled
On Sub 1 Me!Subform1.Form!ControlName.Enabled Me!ControlName.Enabled
On Sub 2 Me!Subform1.Form!Subform2.Form!ControlName.Enabled Me!Subform2.Form!ControlName.Enabled