I'll disagree a little with June here, and say you can do it, but it's not very easy. (This is in a report , certainly not possible in a form)
You can get the height of the expanded text box and then set the other text box height to match that, I have done it on a statement of works where both the fault and scope of works could be a single line or multiple lines;
I was only adjusting the label box size and position but it works. Code is below as a starting point, but I warn you it takes quite a lot of fiddling around with to make it work.
Excuse all the commented out bits. They were from me debugging and getting it to work.
You may need to concatenate your third level items into a list to get the sectioning to work.
Code:
Private Sub GroupHeader1_Format(Cancel As Integer, FormatCount As Integer)
Dim X1 As Single, Y1 As Single
Dim X2 As Single, Y2 As Single
Dim Offset As Single
Dim BoxColor As Long
Dim FillColour As Long
Dim lblTop As Integer
' Specify unit of measurement for coordinates on a page...
Me.ScaleMode = 1 ' ...in twips (1440 twips = 1 inch).
' Define an offset of 1/8 inch from the text box to the rectangle.
Offset = 12
lblTop = Me!txtQuoteText.Top
Me.lblQuoteText.Top = lblTop
' Width of the line (in pixels).
'1 pt = 12
'2 pt = 24
'3 pt = 36
'4 pt = 48
End Sub
Private Sub GroupHeader1_Print(Cancel As Integer, PrintCount As Integer)
Dim X1 As Single, Y1 As Single
Dim X2 As Single, Y2 As Single
Dim Offset As Single
Dim BoxColor As Long
Dim FillColour As Long
Dim lblTop As Integer
' Specify unit of measurement for coordinates on a page...
Me.ScaleMode = 1 ' ...in twips (1440 twips = 1 inch).
' Define an offset of 1/8 inch from the text box to the rectangle.
Offset = 12
' X and Y coordinates for the top left corner of the box.
X1 = Me![lblRepFault].Left - Offset
Y1 = Me![lblRepFault].Top - Offset - 12
' X and Y coordinates for the bottom right corner of the box.
X2 = X1 + Me![lblLabour].Width + Offset '+ Me![txtLabourValue].Width + Offset
Y2 = Me![lblLabour].Top '+ Me![txtQuoteText].Height + Offset
' Width of the line (in pixels).
'1 pt = 12
'2 pt = 24
'3 pt = 36
'4 pt = 48
BoxColor = RGB(166, 166, 166) 'RGB(255, 0, 0) ' ' Use Dark grey color.
FillColour = RGB(217, 217, 217) 'RGB(217, 217, 217)
' Draw the rectangle with the Line method.
Me.DrawWidth = 1
Me.Line (X1 - 6, Y1 - 6)-(X2 - 1, Y2 - 6), FillColour, BF
Me.DrawWidth = 12
Me.Line (X1, Y1)-(X2, Y2), BoxColor, B
'Me.Line Step(Me.txtHoursText.Top, Me.txtHoursText.Left)-Step(0.021, 0), vbRed, BF
End Sub
The two box sections circled (very badly in blue!) can grow and shrink as required, to match the sections on the right.