(I haven't mentioned it yet, but my context for all answers here has been and is Access 97.)
You might want either or both of two things, and these two things apply to a *form*, not a *report*. (You asked about a report, markstn, but I typed a bunch before I realised that, and I'm not going to delete it ;-) . But I will also speak of reports at the end. I'll also suggest one other long-shot possibility.)
First thing:
Check the OLE control's .SizeMode property. It's values can be set as follows (from the help file):
----
The SizeMode property uses the following settings:
Clip:
(Default) Displays the object at actual size. If the object is larger than the control, its image is clipped on the right and bottom by the control's borders.
Stretch:
Sizes the object to fill the control. This setting may distort the proportions of the object.
Zoom:
Displays the entire object, resizing it as necessary without distorting the proportions of the object. This setting may leave extra space in the control if the control is resized.
----
I almost always use Zoom for my purposes; for a Word document, I almost certainly would. Remember that it resizes the object, though, so it will make your text smaller or bigger.
Another option would be to use the "Clip" setting to avoid any resizing, attaching scrollbars to the control, and in the scroll bars' code changing the portion of the frame's contents which is visible. This technique is only available if you use a linked object, not embedded. You would change which portion of the frame's contents are visible by using the frame's .SourceItem property. Quoting the help:
-----
"You can set the SourceItem property by specifying data in units recognized by the application supplying the object. For example, when you link to Microsoft Excel, you specify the SourceItem property setting by using a cell or cell-range reference such as R1C1 or R3C4:R9C22 or a named range such as Revenues." [...] "Remarks: The control's OLETypeAllowed property must be set to Linked or Either when you use this property. Use the control's SourceDoc property to specify the file to link."
-----
So in the scroll bars' code, as they move, the .SourceItem property of the frame could be changed in proportion, in effect scrolling the contents of the frame.
I don't know why that won't work with an embedded object, but that seems to be what the help is saying; I don't think you can use "either" and "embedded", and also set the .SourceItem property to any effect. If you try it anyway, definitely share the results (positive or negative) back here, please!
Second thing:
You might be wanting to resize the whole control, which you would do by changing the .Height and .Width properties of the frame, same as any other control. You would have to set code in place to detect the conditions under which you want to do this, which might be the tough part, depending on what you want, behavior-wise.
Strictly Educational Supposition: The reason that the two types of frame controls don't have .CanGrow and .CanShrink is that they have specific properties related to changing the size of contents to fit them, rather than changing their own size to fit the contents (like a growing/shrinking TextBox does).
OKAY, NOW TO TALK ABOUT REPORTS:
marstn wanted to know about how to make an OLE frame behave like a TextBox with .CanGrow and .CanShrink set to Yes, in a report. Can it be done? Probably, yes.
If you don't mind the text growing or shrinking to fit the size of your frame, then set the .SizeMode property of the frame to "Zoom". And you'll need to make the frame big enough that the largest amount of text will still be legible. Of course, a potential side-effect will be fields with brief text printed ridiculously large.
If you don't want to change the size of the text automatically, then you'll want to make use of the .Height and .Width properties mentioned above. You'll probably need to put your code in the Format event handler for the appropriate section(s) of your report. The question is: How can you use code to determine how much vertical space is taken up by text in the frame? I don't know how, off the top of my head. Maybe you can interact with Word through Automation or through its exposed OLE "stuff" to retrieve information like that, but it would probably also require dealing with screen/printer pixel/twip/inch sizes and stuff like that. Maybe you can just figure out how much vertical space a single line would take up and somehow easily count the number of lines then mutiply that number by your constant HEIGHT_OF_A_LINE, and resize the control accordingly.
You can certainly resize controls in the Format event handler; I just tested with a TextBox. I'll leave it to you or others to figure out how to calculate the correct size to use.
Maybe you can do the text editing within an MS-Word TextBox, which does support formatting. Maybe Word exposes its TextBoxes' height through its object model (through VB); if so, you could get Word to check the TextBox's height and pass the value back to Access to resize the frame.
Whatever you do to calculate the appropriate size, make sure it isn't so slow that it makes your report unmanageable.
ANOTHER LONG-SHOT APPROACH:
The basic problem is that Access doesn't have a RichFormatText data type for table fields. If it did, you'd be set. There is a Rich Format TextBox control available for VB out there; it exists, and I *believe* it is called an RFTextBox. I've used it in full-blown Visual Basic apps before (some years ago). But there's that basic problem just mentioned.
If you could find a way to store an RFTextBox in an OLE field, you might have something simpler and more manageable than MS-Word for this purpose. Instantiate an RFTextBox and set the SourceObject to that. On the other hand, it may not be at all possible; it might require an app to act as an OLE server for it to go in one of the frames.
...Just a wild idea...
Hope any of ths helps you out

! -- C Vigil =)
(Before becoming a member, I also signed on several posts as
"JustPassingThru" and "QuickieBoy" -- as in "Giving Quick Answers"
