Microsoft KB Archive/184462

From BetaArchive Wiki
Knowledge Base


Article ID: 184462

Article Last Modified on 2/27/2004



APPLIES TO

  • Microsoft Outlook 98 Standard Edition



This article was previously published under Q184462

SUMMARY

This article provides an example of how to use the SetColumns command in the Microsoft Outlook 98 object model.

MORE INFORMATION

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:

The SetColumns method caches Outlook fields to improve performance when programmatically manipulating these fields. The method works with most standard Outlook fields, but does not work with user-defined fields.

For more information on which fields cannot be used with the SetColumns method, consult the SetColumns Method topic in the Microsoft Outlook Visual Basic Help file (Vbaoutl.hlp).

NOTE: Outlook already caches the Subject and Message Class fields for all types of items, so using the SetColumns method with these fields is unnecessary. On appointments, Outlook also caches some additional standard Outlook properties, such as Start, End, Location, Duration and BusyStatus.

The following sample subroutine illustrates the use and syntax of the SetColumns method. Before using this automation example from Visual Basic or another Microsoft Office program, you should have at least ten contacts in your default contacts folder and create a reference to the Outlook 98 object library.

   Sub SetColumns_Example()
      Dim ol As Outlook.Application
      Dim MyFolder As MAPIFolder
      Dim itms As Items
      Dim itm As Object
      Dim dtmStart As Date, dtmEnd As Date
      Dim lngElapsed As Long
      Set ol = New Outlook.Application
      Set MyFolder = ol.Session.GetDefaultFolder(10)
      Set itms = MyFolder.Items
      itms.SetColumns "[FullName],[CompanyName]"
      Debug.Print "WITH SETCOLUMNS"
      Debug.Print Time
      Debug.Print "------------------"
      dtmStart = Time
      For Each itm In itms
         Debug.Print itm.FullName & ", " & itm.CompanyName
      Next
      dtmEnd = Time
      lngElapsed = DateDiff("s", dtmStart, dtmEnd)
      Debug.Print "Elapsed Time: " & lngElapsed
      Debug.Print

      itms.ResetColumns
      Debug.Print "WITHOUT SETCOLUMNS"
      Debug.Print Time
      Debug.Print "------------------"
      dtmStart = Time
      For Each itm In itms
         Debug.Print itm.FullName & ", " & itm.CompanyName
      Next
      dtmEnd = Time
      lngElapsed = DateDiff("s", dtmStart, dtmEnd)
      Debug.Print "Elapsed Time: " & lngElapsed
   End Sub
                

REFERENCES

For more information about creating solutions with Microsoft Outlook 98, please see the following articles in the Microsoft Knowledge Base:

180826 OL98: Resources for Custom Forms and Programming

182349 OL98: Questions About Custom Forms and Outlook Solutions



Additional query words: OutSol OutSol98

Keywords: kbhowto kbprogramming kbdtacode KB184462