Microsoft KB Archive/238609

= OL97: Can't Display or Save Item Using GetItemFromID =

Article ID: 238609

Article Last Modified on 1/24/2007

-

APPLIES TO


 * Microsoft Outlook 97 Standard Edition

-



This article was previously published under Q238609





SYMPTOMS
You try to programmatically display or save an item, but the Display or Save methods in the Outlook object model do not seem to work.



CAUSE
This behavior occurs when all of the following conditions are true:


 * You referenced the item using the GetItemFromID method. -and-


 * The item is based on a custom form containing Visual Basic Scripting Edition (VBScript) code. -and-


 * The form definition is not stored within the item.



RESOLUTION
Depending on the needs of your solution, you may be able to work around the problem by using an alternate method of referencing the item. For additional information about how to programmatically reference items, please see the following article in the Microsoft Knowledge Base:

180696 OL97: Programming Examples for Referencing Items and Folders



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.



MORE INFORMATION
This problem is not related to the type of folder the items are stored in. The problem occurs regardless of whether the folder is stored in a Personal Folders (.pst) file, Microsoft Exchange public folders, or a Microsoft Exchange mailbox.

Steps to Reproduce Behavior
 Create a new folder, in this case a Contacts folder. Open a new contact. On the Tools menu, click Design Outlook Form.  On the Form menu, click View Code. Enter the following VBScript code into the Script Editor and then close the Script Editor: Dim x                    Publish the form to the folder created in step 1, naming it GetItemFromID Test1 .</li> Close and do not save changes to the form.</li> On the Contacts menu, click New GetItemFromID Test1. Enter some contact information and save the contact.</li> Open a new, default contact.</li> On the Tools menu, click Design Outlook Form.</li> Click the P.2 page of the form.</li> On the Form menu, click Control Toolbox. Drag a CommandButton control onto the P.2 page of the form.</li>  On the Form menu, click View Code. Enter the following VBScript code into the Script Editor and then close the Script Editor: Sub CommandButton1_Click Dim ns, myFolder, myItem, myEntryID, myStoreID Set ns = Application.GetNamespace("MAPI") Set myFolder = Application.ActiveExplorer.CurrentFolder Set myItem = myFolder.Items(1) MsgBox "First item in folder: " & myItem.Subject myEntryID = myItem.EntryID myStoreID = myItem.Parent.StoreID Set myItem = Nothing Set myItem = ns.GetItemFromID(myEntryID, myStoreID) MsgBox "Item found using GetItemFromID: " & myItem.Subject myItem.Display Set myItem = Nothing Set myFolder = Nothing Set ns = Nothing End Sub </li> Publish the form to the folder created in step 1, naming it GetItemFromID Test2 .</li> Close and do not save changes to the form.</li> On the Contacts menu, click New GetItemFromID Test2. Switch to the P.2 page of the form and click the CommandButton.</li></ol>

Result: You receive two message boxes indicating that Outlook has referenced the first item in the folder, but the item is not displayed.

<div class="references_section">