Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: DerTutNix am Juli 25, 2025, 17:34:13

Titel: Höhe eines dynamischen Feldes nach Vergrößerung bestimmen
Beitrag von: DerTutNix am Juli 25, 2025, 17:34:13
So langsam verzweifel ich bei der Lösung meines Problems.

In einem Bericht befinden sich 4 Textboxen nebeneinander die alle auf Vergrößerbar = JA stehen.

Diese 4 Textboxen sollen mit einem gemeinsamen Rahmen umgeben werden dessen Höhe sich an der Höhe der größten, höchsten Box orientieren soll.
Die Größe einer Textbox wird dabei durch den Inhalt bestimmt und ändert sich von Datensatz zu Datensatz.

Wenn ich nun z.B. die Höhe der Box1 im Bericht unter

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)

mit Me.Rahmen.Height=Me.Box1.Height


bekomme ich nur die originäre Höhe aus dem Berichtsentwurf.

Wenn mit Me.Box1.Height = Me.Box1.Height die dynamische Höhe erfragen möchte ändert sich das Ergebnis nicht.

Ich suche also die Möglichkeit die Höhe von Box1 abzufragen nachdem der Text dort drin steht.

Hat jemand eine Idee??

Andreas

Titel: Re: Höhe eines dynamischen Feldes nach Vergrößerung bestimmen
Beitrag von: Knobbi38 am Juli 25, 2025, 18:05:00
Hallo Andrea,

im Format-Event der Sektion geht das auch nicht, nur im Print-Event, wobei du dann mit der Line-Anweisung eine Box zeichnen kannst.

Es gibt jedoch noch eine andere Möglichkeit. Im Entwurfsmodus haben Textboxen grundsätzlich die Höhe 0, da sie dynamisch vergrößert werden. Wenn darunter nun ein Linien-Steuerelement positioniert wird, wird dieses durch die höchste Textbox nach unten ,,verdrängt". Wenn dir das schon reicht, ansonsten kannst du im Print-Event die Position und Größe der Linie abfragen. Dann müssen nicht mehr alle Textboxen separat ermittelt und auf ihre Höhe geprüft werden.

Gruß Knobbi38
Titel: Re: Höhe eines dynamischen Feldes nach Vergrößerung bestimmen
Beitrag von: DerTutNix am Juli 25, 2025, 18:49:10
Erst einmal vielen Dank für Deine Antwort.


da kommt dann: Fehler 2191. Sie köönen die Höhe nicht in der Vorschau.. und auch nicht nach dem Start des Druckvorganges..

Mittlerweile zeigt er mir in VBA wenn ich mit der Maus auf die Zeile gehe die richtigen Werte an.

    Me.Box.Height (1000 die Höhe aus der Entwurfsansicht)= Me!Box1.Height (5000 die Höhe nach dem Einstellen des Textes)

aber sobald ich dann eingebe
    Me!Rahmen.Height = Me!Box1.Height

zeigt er wieder nur die 1000 twips an

Was mache ich hier falsch??

Ich vermute mal irgendein banaler Anfängerfehler



Titel: Re: Höhe eines dynamischen Feldes nach Vergrößerung bestimmen
Beitrag von: Knobbi38 am Juli 25, 2025, 23:39:18
Du kannst natürlich im Print-Event den Steuerelementen nicht mehr etwas neues zuweisen, so daß sich das Layout verändert, weil im Print-Event ist bereits alles passiert ist.

Was du machen kannst, und davon hatte ich geschrieben, im Nachhinein auf das "virt. Blatt" etwas mit der Line-Anweisung "pinseln". Denn Rahmen machst du dabei nicht mit einer Rechteck-Steuerelement, sondern du zeichnest mit Line einfach eine nicht ausgefüllte Box. Die benötigten Werte kannst du aus den Steuerelementen Eigenschaften, z.B. Top,Left usw. auslesen. Interessant ist in diesem Zusammenhang auch die Padding Eigenschaft. Diese kann im Entwurf wie gewünscht eingestellt werden und bei der Line-Anweisung berücksichtigt werden. Somit bekommst du einen perfekten Rahmen um deine Textboxen.

Gruß Knobbi38