ACC2: How to Programmatically Embed or Link an Object in a Form

Last reviewed: May 14, 1997
Article ID: Q114214
The information in this article applies to:
  • Microsoft Access version 2.0

SUMMARY

Moderate: Requires basic macro, coding, and interoperability skills.

This article describes how to programmatically embed or link an object in an OLE object field on a form using the object frame properties in Microsoft Access version 2.0.

MORE INFORMATION

You can set the object frame Action property at run time to perform a number of operations on an object frame. These operations include the ability to embed and link objects in an object frame, as well as other operations for programmatic access to OLE functionality.

There are other object frame properties that need to be set as prerequisites to setting the Action property. The properties that need to be set are determined by the type of OLE object you are working with and the type of action, using the Action property, you want to perform.

NOTE: The constants for use by the Action property are defined in the CONSTANT.TXT file, which is included with Microsoft Access. To use the constants in your code, you must either declare them yourself or copy them from the CONSTANT.TXT file and paste them into the Declarations section of your Access Basic module.

Linking an OLE Object

To link an object in an object frame on a form, first set the following properties:

  • OLETypeAllowed: Set to OLE_LINKED to indicate the OLE field will contain a linked object.
  • SourceDoc: Set to the path and filename of the file to be linked.
  • SourceItem: Indicates the data in the source document to link to. This could be a cell or cell range in a Microsoft Excel spreadsheet, or a bookmark in a Microsoft Word for Windows document. This property setting is optional.

Once you set these properties, you can set the Action property to OLE_CREATE_LINK to link the object in the object frame.

The following sample code demonstrates how to programmatically link a range of cells from a Microsoft Excel spreadsheet to an OLE object field named Sales Totals bound to an object frame with the same name on a form:

   ' Specify what kind of object can appear in the field.
   [Sales Totals].OLETypeAllowed = OLE_LINKED

   ' Specify the file to be linked.
   [Sales Totals].SourceDoc = "C:\EXCEL\SALES.XLS"

   ' Specify the (optional) cell range to link to.
   [Sales Totals].SourceItem = "R1C1:R5C5"

   ' Create the linked object.
   [Sales Totals].Action = OLE_CREATE_LINK

Embedding an OLE Object

To embed an object in an object frame on a form, first set the following properties:

  • OLETypeAllowed: Set to OLE_EMBEDDED to indicate the OLE field will contain an embedded object.
  • SourceDoc: Set to the path and filename of the file containing the information to embed.

Once you set these properties, you can set the Action property to OLE_CREATE_EMBED to create an embedded object with a copy of the information in the source document file.

The following sample code demonstrates how to embed a Word for Windows document in an OLE object field named Word Documents bound to an object frame with the same name on a form:

   ' Specify what kind of object can appear in the field.
   [Word Documents].OLETypeAllowed = OLE_EMBEDDED

   ' Specify the file containing the information to embed.
   [Word Documents].SourceDoc = "C:\WINWORD\JONES.DOC"

   ' Create the embedded object.
   [Word Documents].Action = OLE_CREATE_EMBED

Creating an Empty Embedded Object

To create an empty embedded object in an object frame, first set the following properties:

  • Class: Set to the type of object you want to create. For a Microsoft Excel worksheet, use Excel.Sheet. For a Word for Windows document, use Word.Document.
  • OLETypeAllowed: Set to OLE_EMBEDDED to indicate the OLE field will contain an embedded object.

Once you set these properties, you can set the Action property to OLE_CREATE_EMBED to create an empty embedded object of the type specified in the Class property. Then, set the Action property again to invoke the application for that object.

The following sample code demonstrates how to programmatically create new Word for Windows documents in an OLE object field named Word Documents bound to an object frame with the same name on a form:

   ' Specify what kind of object can appear in the field.
   [Word Documents].Class = "Word.Document"

   ' Specify what kind of object can appear in the field.
   [Word Documents].OLETypeAllowed = OLE_EMBEDDED

   ' Create the embedded object.
   [Word Documents].Action = OLE_CREATE_EMBED

   ' Invoke Word for Windows to edit the empty embedded object.
   [Word Documents].Action = OLE_ACTIVATE

REFERENCES

Microsoft Access "Building Applications," version 2.0, Chapter 13, "Communication With Other Applications," pages 295-297

For more information about the Action property, search for "Action," and then "Action Property" using the Microsoft Access Help menu.


Additional query words: automation insert
Keywords : IntpOle
Technology : kbole
Version : 2.0
Platform : WINDOWS
Hardware : X86
Issue type : kbhowto


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 14, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.