Dan heb je dus helemaal niks aan Screen.Activeform, want zodra je op de knop klikt, die ongetwijfeld op het hoofdformulier staat, dan activeer je het hoofdformulier. Ik zou de procedure overigens niet laten afhangen van of een bepaald formulier nu wel of niet actief was of niet, want dat zegt toch helemaal niks? Als ik op subformulier 3 heb geklikt, dan is dat actief, maar dan heb ik nog niks gedaan. Ga ik vervolgens terug naar het hoofdformulier, dan lijkt mij dat je ook niets hoeft uit te voeren. Controleer dus de gegevens, en niet waar de gebruiker toevallig staat met zijn cursor.
Overigens is je probleem simpel te omzeilen door een (verborgen) tekstvak op het hoofdformulier te zetten dat je vult met de naam van het geactiveerde tabblad. Kun je altijd uitlezen met de knop. Maar ik zet dus stevige vraagtekens bij je procedure...