Opgelost Volgende record in Sub formulier vanuit hoofd formulier met Tab

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

RobertJB66

Gebruiker
Lid geworden
2 feb 2022
Berichten
223
Ik heb op een hoofd formulier een Tab kader.
Op Tab 5 is een Sub formulier aanwezig welke meerdere records kan bevatten.
Ik wil graag binnen het Tab kader een volgende knop plaatsen waarmee ik naar het volgende record kan gaan in het sub formulier binnen hetzelfde Tab 5 kader. De recordselector is niet erg handig voor mijn doel en het is layout technisch niet handig dat de knop in het subformulier zit.

Kan iemand mij hiermee op weg helpen?
 
Dat kan denk ik wel. Als je code hebt om te bladeren, dan kun je die wel aanpassen door in de code de naam van het (sub)formulier toe te voegen. Overigens vraag ik me af waarom je de knoppen niet op het subformulier houdt; zet ze in de koptekst of voettekst en het maakt formuliertechnisch toch niet uit? Ook knoppen op het hoofdformulier hebben een fysieke grootte.

Daarnaast lijkt het met dat je, als je meer bladerknoppen dan nodig op een hoofdformulier zet, je ook moet aangeven welke knoppen welk formulier bedienen. Dus je maakt je formulier toch alleen maar onoverzichtelijker? Ik zou in jouw geval de bladerknoppen in de koptekst zetten, met een lage hoogte en voldoende breedte. Dan nemen ze relatief heel weinig plek in (minder in ieder geval als dat je ze op het hoofdformulier zet) en het is voor iedereen duidelijk waar ze voor zijn.

Maar het kán dus wel, wat je wil.
 
Deels heb je gelijk echter is het zo dat als er een ander Tab de focus heeft de knoppen ook niet zichtbaar zijn. Tevens zijn er onderaan al een paar knoppen voor het afdrukken van rapporten. Hierdoor neemt het geen extra ruimte in op het scherm. Voor het beeld heb ik een afbeelding bij gesloten.Screenshot 2024-07-31 153718.jpg

Het onderstaande heb ik al geprobeerd echter zonder fout meldingen, maar ook zonder resultaat.

Code:
Private Sub CmdNext_Click()
On Error Resume Next
    Me("Tab" & [frmMenu]).[EEC-RapportTop].SetFocus  'waarde frmMenu = 5
    DoCmd.GoToRecord , , acNext
End Sub
 
Logisch, geen foutmeldingen ;)
 
Je maakt een (an sich logische) denkfout, door te denken dat je bladerknoppen zou moeten zien als je het betreffende formulier niet ziet!? Wat is daar de logica achter? Bladeren met knoppen op een voor jou onzichtbaar formulier? Ik hoef, als ik in een subformulier wil bladeren, die knoppen alleen maar te zien als ik dat formulier in beeld heb. Daarnaast lijkt het mij erg verwarrend als knoppen continue van functie wisselen. Ik gebruik dat in ieder geval spaarzaam.

Maar een ander probleem is natuurlijk, dat je op een doorlopend formulier bar weinig hebt aan bladerknoppen. Je hebt immers (als het goed is) al een stuk of tig records op het scherm, en waarom zou je dan 15 keer op de bladerknop klikken als je ook gelijk op het juiste record kan komen met één klik? De bladerknopcode die je laat zien is alleen nuttig op een enkelvoudig formulier. Niet op een doorlopend formulier.
En ik snap ook niet helemaal wat je met die SetFocus aan het doen bent. Tabobjecten zijn in beginsel 'dood'; je hoeft ze niet aan te spreken om de inhoud ervan te benaderen. Ze tellen daar a.h.w. niet bij mee.
Dus ik heb geen idee wat je nu aan het setfocussen bent. Ik zou het formulier op dat tabblad in ieder geval ook activeren.

Ik hoop overigens dat je wat hebt aan het bericht van ah. Persoonlijk zou ik er niet veel mee kunnen. Knipoog of niet :).
 
Laatst bewerkt:
De "On Error Resume Next" over het hoofd gezien?
 
Wie zegt jou dat TS die niet later heeft toegevoegd, en de code eerst zonder On Error heeft gedraaid? Maar het helpt inderdaad niet om een foutmelding te zien. Puntje voor jou :)
 
Overigens net een testje gemaakt met twee formulieren in een tabblad, en dat werkt prima.
Code:
Private Sub Knop5_Click()
    Me.F_Bestandenlijst.SetFocus
    DoCmd.GoToRecord , , acNext
End Sub
Ga ik er toch vanuit dat je hier geen On Error nodig hebt :). Hoewel? ben je bij het laatste record, dan krijg je die natuurlijk wel. Maar daar is een simpele oplossing voor.

Zoals je ziet: het tabblad wordt niet genoemd (of gebruikt) in de code. Dood object namelijk.
 
Kijk naar mijn voorbeeld; dat werkt namelijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan