Wie kann ich feststellen, ob ein Steuerelementobjekt (z. B. acTextBox) Mitglied einer Seitenauflistung in VBA ist?Suchen Sie den Abschnitt oder die Seite eines VBA-Steuerelements
Wenn ein Steuerelementobjekt den Fokus hat, wird eine Funktion aufgerufen, um den Fokus basierend auf dem verwendeten Schlüsseltyp auf den nächsten control.tabindex zu verschieben. Das habe ich mit Sendkeys "{TAB}" geschafft, aber ich möchte das ändern, da diese Methode NUMLOCK ständig auf der Tastatur deaktiviert.
Bis jetzt funktioniert die folgende Funktion, aber die Prozedur berücksichtigt alle Steuerelemente in einem Formular. Es sollte nur die Steuerelemente innerhalb derselben Sektion oder Seite berücksichtigen, von der die Funktion aufgerufen wird. Um dies zu erreichen, muss ich wissen, ob sich das aktive Steuerelement innerhalb einer Seite und/oder Sektion befindet und wenn ja, der Name oder der Index dieser Seite/Sektion. Ich kann den Code dafür nicht finden.
Public Function GotoNextTab()
Dim ctlNext, ctlCurrent As Control
Dim frmCurrent As Form
Dim lngNextTab As Long
Set frmCurrent = Screen.Activeform
Set ctlCurrent = Forms(frmCurrent.Name).ActiveControl
lngNextTab = Val(ctlCurrent.TabIndex) + 1
Do Until lngNextTab = frmCurrent.Controls.Count
For Each ctlNext In frmCurrent.Controls
Select Case ctlNext.ControlType
Case acCheckBox, _
acComboBox, _
acCommandButton, _
acListBox, _
acOptionButton, _
acSubform, _
acTabCtl, _
acTextBox, _
acToggleButton
If ctlNext.TabIndex = lngNextTab Then
If ctlNext.TabStop = True Then
'Make sure that the focus can be set here!
If ctlNext.Visible = True And ctlNext.Enabled = True Then
ctlNext.SetFocus
Exit Function
Else
'Focus could not be moved, so increase lngNextTab
lngNextTab = lngNextTab + 1
End If
Else
'This was the last tab, so exit
Exit Function
End If
End If
End Select
Next ctlNext
Loop
End Function
Was meinen Sie mit * Seiten Sammlung * in Bezug auf Formulare? Meinst du das [Access 2003-Funktion] (https://msdn.microsoft.com/en-us/library/office/aa210669 (v = office.11) .aspx)? Wenn Sie einen Screenshot dieser interessanten Form teilen können. Und wo wird diese Funktion aufgerufen? Welches Triggerereignis (OnOpen, OnClick, AfterUpdate)? – Parfait
Ich arbeite in V2010, aber ja, genau das meine ich. Die Steuerelemente befinden sich auf verschiedenen Seiten in einem Registersteuerelement. Der Bereich der Tabindex-Werte ist auf die Anzahl der Steuerelemente innerhalb einer Registerkarte beschränkt (ansonsten würde ich sie einfach fortlaufend nummerieren). Deshalb möchte ich wissen, auf welcher Seite (Seiten (Index)) sich das Steuerelement befindet, – Art