SueRobbins,
In my opinion that's the hardest question to answer since I feel it depends on how the form will be used, how you (or the user) want the form to look/work, the time you have to invest in development, and your skill level. With that said, here are a couple of thoughts:
[ol]
[li]If the form is primarily used to read the data in the form you could use the [tt]GotFocus()[/tt] event for each of the three controls that could grow, this way the control will resize when the user clicks on it.
Code:
Private Sub [i]ControlName[/i]_GotFocus()
If Len(Me.[i]ControlName[/i].Value) > [i]LengthOfDefaultField[/i] Then
Me.[i]ControlName[/i].Height = (Len(Me.[i]ControlName[/i].Value) \ [i]CharactersPerLine[/i] + 1) * ([i]StandardRowHeightInInches[/i] * 1440)
Else
Me.[i]ControlName[/i].Height = [i]StandardRowHeight[/i]
End If
End Sub
[/li]
[li]If the data in the three fields will be changed you could use the [tt]Exit()[/tt] event of the three controls causing the controls to resize when the user moves to the next field.
Code:
Private Sub [i]ControlName[/i]_Exit(Cancel As Integer)
If Len(Me.[i]ControlName[/i].Value) > [i]LengthOfDefaultField[/i] Then
Me.[i]ControlName[/i].Height = (Len(Me.[i]ControlName[/i].Value) \ [i]CharactersPerLine[/i] + 1) * ([i]StandardRowHeightInInches[/i] * 1440)
Else
Me.[i]ControlName[/i].Height = [i]StandardRowHeight[/i]
End If
End Sub
[/li]
[li]If you really want to pull your hair out, you can make the field change as the user types by using the [tt]KeyUp()[/tt] event.[/li]
[li]Lastly, you could run a routine when the form loads to set the initial size of the three controls based on the underlying record set, and then never change them.[/li][/ol]
Keep in mind that as a continous form, everytime you change the height of a control, the height of that control will change for every record that is displayed on the form.
That should make it clear as mud,
CMP
(GMT-07:00) Mountain Time (US & Canada)