De code zoals ik die had voorgesteld doet het prima, maar je moet wel een paar aanpassingen doen. Om te beginnen: in een rapport zet je de recordgegevens toch echt in de detailsectie, daar is-tie voor. De koptekst is bedoeld voor de teksten die je op elke pagina wilt laten terugkomen, mochten er teveel records in de detailsectie zijn voor één pagina. In de paginakoptekst zet je bijvoorbeeld dus wèl de veldnamen, maar niet de velden zelf. Als je dat aanpast, kun je de code gewoon in de Opmaak sectie van de detailsectie gebruiken.
Tweede aanpassing: je hebt waarschijnlijk een beetje zitten klooien met de velden, want er is er geen een meer met de oorspronkelijke veldnaam. En als je verwijst naar een veld, moet je uiteraard wel de naam goed hebben. In onderstaande code ziet het er dan ook nu zo uit:
Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
If Forms!hoofdmenu!Afdrukkenoven = False Then
Me.txtmerktoesteloven.Visible = False
Else
Me.txtmerktoesteloven.Visible = True
End If
End Sub
Ik heb hierin het tekstveld [merktoesteloven] de naam txtmerktoesteloven gegeven. Als je dat consequent doet, veldnamen onderscheidend maken van eigenschapnamen, door een voorzetsel te gebruiken (txt voor tekstvakken, cbo voor keuzelijsten, chk voor selectievakken etc) maak je het voor jezelf een stuk makkelijker om later te verwijzen naar een opbject op je formulier of rapport.
Wat een veel groter voordeel zou opleveren, is als je de bestelprocedure op de schop zou gooien, en niet gelijk alle onderdelen in het rapport zou gooien, maar met een subtabel zou werken waarin je alle bestelde onderdelen gewoon opslaat. Op die manier krijg je een (sub)rapport met één regel met veldnamen, en wordt je rapport dynamisch aangepast aan de bestelde artikelen. En dat is een stuk makkelijker te onderhouden. Dus daar zou ik zeker eens over nadenken.