OL2000: How to Programmatically Create a Form (238755)
The information in this article applies to:
This article was previously published under Q238755 SUMMARY
If you are creating an advanced solution using Outlook, you may have a requirement to programmatically create a form where the layout varies based on certain criteria. This article provides an overview and starting point for building this type of solution.
MORE INFORMATION
Unlike previous versions, Outlook 2000 was specifically designed so you can programmatically create forms. IMPORTANT: You should carefully evaluate how you use this capability. The following key issues should be taken into account: - Depending on where forms and items are stored, solutions that repeatedly republish forms can place additional performance and resource burdens on a Microsoft Exchange Server.
- These types of solutions can cause potential problems with the Outlook forms cache and you should carefully evaluate how this approach may impact the cache. In particular, ensure that forms that are published to multiple locations do not have the same name. For additional information about the Outlook forms cache, click the article number below
to view the article in the Microsoft Knowledge Base:
232303 OL2000: How the Forms Cache Works
- If you've already created items that use a published form, and then programmatically changed the form, there's a good chance that those items are one-offs. You should carefully plan and evaluate the use of one-off forms and how they relate to your forms solution. For additional information about one-off forms, click the article number below
to view the article in the Microsoft Knowledge Base:
207896 OL2000: Working with Form Definitions and One-Off Forms
- The Outlook object model does not directly support switching between the compose and read pages of a form. Therefore, any programmatic changes you make to a form are done on the compose pages, not the read pages. Trying to develop a workaround can be problematic and most likely will involve using the .Execute method on the CommandBars objects to toggle a form between compose and read pages.
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 a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
Sample Code to Add a Control to a Form
The following Microsoft Outlook Visual Basic for Applications code illustrates how you can programmatically add a Label and Listbox control to a new page of the default Contact form. Be sure to reference the Microsoft Forms 2.0 Object Library before running the code.
Sub CreateForm()
Dim oNewItem As Outlook.ContactItem
Dim oInsp As Outlook.Inspector
Dim oPage As Object
Dim oLabel As MSForms.Control
Dim oLB As MSForms.Control
Set oNewItem = Application.CreateItem(olContactItem)
Set oInsp = oNewItem.GetInspector
' Create a new form page called "My Page"
Set oPage = oInsp.ModifiedFormPages.Add("My Page")
' Add the label to the form page
Set oLabel = oPage.Controls.Add("Forms.Label.1", "lblCompanies", True)
' Size and position the label
PlaceControl oLabel, 5, 10, 13, 100
' Set the caption of the label
oLabel.Caption = "Companies:"
' Add the listbox to the form page
Set oLB = oPage.Controls.Add("Forms.ListBox.1", "cmdCompanies", True)
' Size and position the listbox
PlaceControl oLB, 18, 10, 50, 100
' Populate the listbox
oLB.AddItem "Microsoft"
oLB.AddItem "ACME"
oLB.AddItem "Northwind"
' Change the form page so it defaults to "My Page"
oInsp.SetCurrentFormPage "My Page"
oNewItem.Display
' Clean up
Set oListBox = Nothing
Set oLabel = Nothing
Set oPage = Nothing
Set oInsp = Nothing
Set oNewItem = Nothing
End Sub
Sub PlaceControl(Ctrl As MSForms.Control, T As Integer, _
L As Integer, H As Integer, W As Integer)
Ctrl.Top = T
Ctrl.Left = L
Ctrl.Height = H
Ctrl.Width = W
End Sub
This code sample simply displays a newly created form.
For additional information about how to programmatically create and publish a new custom form, click the article number below
to view the article in the Microsoft Knowledge Base:
208520 OL2000: Programming Examples for Referencing Items and Folders
Refer to the Items.Add and CreateItemFromTemplate methods in the article.
REFERENCESFor additional information about available resources and answersto commonly asked questions about Outlook solutions, click the article number below
to view the article in the Microsoft Knowledge Base:
146636 OL2000: Questions About Custom Forms and Outlook Solutions
Modification Type: | Major | Last Reviewed: | 9/29/2003 |
---|
Keywords: | kbhowto kbProgramming KB238755 |
---|
|