OL98: How to Update Existing Items to Use a New Custom Form
ID: Q182274
|
The information in this article applies to:
SUMMARY
This article describes how you can update items in a Microsoft Outlook 98
folder so they use a custom form instead of the standard Outlook form.
MORE INFORMATION
There are several situations where you might want to change
the form that is used for all the items in a folder. For example:
- You use the default Outlook form to enter 10 contacts into your
contacts folder. You then create a custom form for contacts
and enter 10 additional contacts. You want the first 10 contacts, when
opened, to use the new custom form.
- You create a custom form for contacts and enter 10 contacts using the
custom form. You then import 100 contacts from a text file. The 100
imported contacts use the default form instead of the custom form.
- You have a public folder with 1000 posted items based on the default
post form. You then create a custom form that shows the items in a way
that is important to your work. You want to apply the new form to the
1000 existing items.
A property of the item called "message class" determines the form the item
uses. You cannot change the message class of an item manually. However, you
can write Visual Basic Scripting Edition (VBScript) or Visual Basic
Automation code to change the message class for all items in a folder.
When you create and publish a custom form, the form is assigned a message
class. This message class determines which form is associated with an item.
The format of the name is "IPM.<FolderType>.<FormName>", where <FolderType>
is the type of folder (Contact, Task, and such) and <FormName> is the name
of the form. For example, if you create a new form named Revised and
publish it to your contact folder, the message class is
IPM.Contact.Revised.
NOTE: In each of the following operations, it is imperative that the new
message class name entered be exactly as the name used when the form was
published.
The following table lists the various names used for Message Classes:
Item Default folder Default Message Class
------------- -------------- ---------------------
Contact Contacts IPM.Contact
Task Tasks IPM.Task
Appointment Calendar IPM.Appointment
Note Notes IPM.StickyNote
Journal Entry Journal IPM.Activity
Mail Inbox IPM.Note
NOTE: You cannot customize and publish the Note form.
To see the message class for an existing item, add the message class field
as one of the columns in the current view. The message class in this view
is read-only; you cannot type in a different message class to change the
form manually.
To add the message class to your view, follow these steps:
- Change the view to a table view, such as the Phone List view in the
the Contacts folder.
- Right-click the column-header in the view and on the shortcut menu,
click Field Chooser.
- In the Field Chooser list, click to select All Contact Fields.
- Drag the Message Class field to the view column-header to add the
field as a column.
Changing the Message Class field of existing items requires that you use
Visual Basic Scripting Edition (VBScript) code within an Outlook form, or
Visual Basic code from another program to automate Outlook and change the
Message Class fields.
The following are two methods of changing Message Class fields. You should
use the second method only if you do not have Microsoft Word 97 or cannot
obtain the Omsgclas.exe file.
Download the Omsgclas.exe Utility
Download Omsgclas.exe, which contains a Word 97 document with a macro
utility to change Outlook message classes. The macro runs automatically
when you open the document.
For more information on obtaining the Omsgclas.exe file, please see the
following article in the Microsoft Knowledge Base:
Q182361
OL98: Word 97 Document to Change Outlook Folder Message
Class
Create a VBScript Routine
Microsoft provides programming examples for illustration only, without
warranty either expressed or implied, including, but not limited to, the
implied warranties of merchantability and/or fitness for a particular
purpose. This article assumes that you are familiar with the programming
language being demonstrated and the tools used to create and debug
procedures. Microsoft support professionals can help explain the functionality
of a particular procedure, but they will not modify these examples to
provide added functionality or construct procedures to meet your specific
needs. If you have limited programming experience, you may want to contact
the Microsoft fee-based consulting line at (800) 936-5200. For more
information about the support options available from Microsoft, please see
the following page on the World Wide Web:
http://www.microsoft.com/support/supportnet/refguide/
Follow the steps below to create and run a VBScript routine that will
change all the items in a folder to a specified form. This example assumes
that you have published a new form called MyNewForm in the current folder.
If you use a different title for your form, modify the form title used in
the third line of code in the section "Enter the VBScript Code." There are
three tasks to this solution.
- Create a new item to store the VBScript code
- Enter the VBScript code and save the form
- Run the VBScript code
Create a New Item to Store the VBScript Code
- On the File menu, point to New and click Mail Message.
- On the Tools menu, point to Forms and click Design This Form to enter
form design mode.
Enter the VBScript Code and Save the Form
- On the Form menu, click View Code.
- In the Script Editor, type the following code. You do not
need to enter the lines that begin with an apostrophe, since these
lines are comments that are ignored when executed.
Sub Item_Open
' Change the following line to your new Message Class
NewMC = "IPM.Contact.MyNewForm"
Set CurFolder = Application.ActiveExplorer.CurrentFolder
Set AllItems = CurFolder.Items
NumItems = CurFolder.Items.Count
' Loop through all of the items in the folder
For I = 1 to NumItems
Set CurItem = AllItems.Item(I)
' Test to see if the Message Class needs to be changed
If CurItem.MessageClass <> NewMC Then
' Change the Message Class
CurItem.MessageClass = NewMC
' Save the changed item
CurItem.Save
End If
Next
MsgBox "Done."
End Sub
- On the File menu, click Close.
- On the File menu, click Save As. Make sure the default setting for
file type is Outlook Template (*.oft), and then select a location to
save the file. Enter a file name for the form, and click OK.
- Close the item by clicking the X in the upper-right corner of the
item window and then click No when prompted to save changes.
Run the VBScript Code
- Open the folder that contains the items you wish to update.
- To run the VBScript code, re-open the item by using Windows Explorer to
locate the file and then double-click the .oft file. The code
will run automatically because it was entered into an Item_Open event
procedure. If you receive a macro warning, click Enable Macros.
- Wait while the code changes the Message Class for all of the items in
the currently selected folder. Depending on the number of items, this
may take several minutes. When the code finishes, you should receive a
message that says, Done.
NOTE: If you wish to edit the VBScript code later to change the name of the
message class, hold down the SHIFT key when you open the item. This
prevents the VBScript code from executing and you can go into design mode,
make changes to the VBScript code, and save the form.
REFERENCES
For more information about creating solutions with Microsoft Outlook 98,
please see the following articles in the Microsoft Knowledge Base:
Q180826
OL98: Resources for Custom Forms and Programming
Q182349
OL98: Questions About Custom Forms and Outlook Solutions
Additional query words:
OutSol OutSol98
Keywords :
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: July 27, 1999