Forms, Word and Document Variables

From: Mark <>
Date: 16 Jul 2002 02:25:09 -0700
Message-ID: <>


I have an application which is trying to read a document variable from Word.
Below is an example of a procedure which opens Word, creates a document variable then tries to read the contents of it. It always fails on retrieving the document variable and i get an ORA-305500.

Using Forms6i on Windows 2000 using Word 2000 (although Word 98 should work i think).

The VBA equivalent for writing and reading the document variables are as follows:

ActiveDocument.Variables.Add Name:="MyVar", Value:="12"


Any thoughts welcome.


  • Declare the OLE objects MyApplication OLE2.OBJ_TYPE; MyDocuments OLE2.OBJ_TYPE; MyDocument OLE2.OBJ_TYPE; [Quoted]
  • Declare handle to the OLE argument list args OLE2.LIST_TYPE; var varchar2(100);


  • Create the Word.Application object and make Word visible
  • by setting the 'Visible' property to true, by default it is invisible. MyApplication:=OLE2.CREATE_OBJ('Word.Application');

  OLE2.SET_PROPERTY(MyApplication, 'Visible', 'True'); -- Comment this line to hide the application.

  • get a handle on Documents collection MyDocuments:=OLE2.GET_OBJ_PROPERTY(MyApplication, 'Documents');
  • Open a new document MyDocument :=OLE2.INVOKE_OBJ(MyDocuments,'Add'); OLE2.DESTROY_ARGLIST(args);

message('Adding Document Variable');

  • Create a document variable MyVar and populate with the value 12 args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, 'MyVar'); OLE2.ADD_ARG(args, '12'); OLE2.INVOKE(MyDocument,'Variables.Add',args); OLE2.DESTROY_ARGLIST(args);

message('Reading Document Variable');

  • Read the document variable and display on Forms message line args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, 'MyVar'); var:=OLE2.INVOKE_CHAR(MyDocument,'Variables',args); message(var); OLE2.DESTROY_ARGLIST(args);
  • Release the OLE objects OLE2.INVOKE(MyDocument,'Close'); OLE2.RELEASE_OBJ(MyDocument); OLE2.RELEASE_OBJ(MyDocuments); OLE2.RELEASE_OBJ(MyApplication);


         when others then          

    -- Release the OLE objects


M Received on Tue Jul 16 2002 - 11:25:09 CEST

Original text of this message