How do you combine duplicate contact items in Outlook? For example, for some people, I have a contact item with just an email address and an additional record with just phone number information. Can I merge duplicate records?

You need to combine records by hand, because you must make field-by-field comparisons to decide what you need to update in each record. An alternative method might be to code Visual Basic Script (VBScript) on an Outlook form to look for items with duplicate names and ask the user a lot of questions about how to combine those duplicates and resolve conflicting information. However, I admit that I don't know anyone who's bothered to write a script to combine records. Unless you have a huge number of duplicate contacts, a little copy and paste from one Contact item to another is your best choice.

Can I change the print style in Outlook so that I can print the calendar for a year on one page?

The monthly calendar print style includes days from the preceding month and subsequent month that happen to fall in the same week as the month you're printing. You can't change the monthly calendar style to show the entire year as a continuous stream of 52 weeks.

One approach might be to take the Outlook Calendar template from http://support.microsoft.com/support/kb/articles/q180/7/53.asp and modify it to generate the calendar for a year. This template includes macros that cycle through your appointments and copies them to a Word document. The Insertappointment subroutine contains the code that does the copying.

You can also generate the calendar for a year and get one month per page. Delete any rows that duplicate the same dates (e.g., the last few days of November, combined with the first few days of December.)

By the way, Microsoft has updated this template for Outlook 98, and you can use it to print calendars from other users' primary Calendar folders and from public folders containing appointments. It wraps text inside the cell for each date on the calendar—something Outlook's built-in print styles can't do.

How can I change the default form Outlook uses to create a new message and display inbound messages (revisited)?

In my first Exchange Administrator column (April 1998), I asked this question and raised the issue of changing the default form to include a collection of standard reply actions with boilerplate text. I suggested that, with Exchange Server 5.5, you write a Microsoft Exchange Scripting Agent script to accomplish this task by changing the MessageClass property.

I am happy to report that such an Exchange 5.5 script now exists. Look for the msgclass_event_005.txt script at http://www.i405.com/MSADSI. This site, which Stephen Gutknecht maintains, includes references about scripting and Active Directory Services Interfaces (ADSI) and sample scripts for creating mailboxes, custom recipients, and distribution lists for Exchange Server.

How can I create a custom view on a public Contacts folder that everyone can use without having to configure the view manually on each user's computer?

First, create the custom view using View, Define Views, New in Outlook 97, or View, Current View, Define Views, New in Outlook 98. In the Create a New View dialog box, which you see in Screen 1, for the Can be used on option, select This folder, visible to everyone. Now, go to File, Folders, Properties to bring up the Properties page of the public folder. On the Administration tab, set Initial view on folder to the newly created view.

How do I control the order of the address books that Outlook displays?

Your concern here is with the order in which Outlook lists address books in Show Names from the list in Address Book. If you are using Microsoft Mail or Exchange Server, you probably see the Global Address List (GAL), then the Post Office or Recipients lists taking up lots of room at the top, with the Contacts list(s) and Personal Address Book (PAB) at the bottom.

The order of this list has no relationship whatsoever to the order in which Outlook checks address lists to resolve recipient addresses. (The list at the bottom of the Tools, Services, Addressing dialog box controls that setting.) Instead, the order in which you install the services that include address books in the user's mail profile controls the order in which the address books appear in the list.

For example, if you want to show the Outlook Address Book (OAB) and Contacts folder(s), then the PAB, then the Exchange Server GAL and Recipients, create a new profile. From Control Panel, select Mail and Fax (or Mail). Click Show Profiles, then Add. Use the Manually configure services option to install services in this order: OAB, PAB, Microsoft Exchange Server. You can also edit the existing profile and remove all but the OAB service, and then add the PAB, followed by Microsoft Exchange Server.

If a user named Maria wants to give another user named Tom read-only access to her Inbox, does the Exchange Server administrator need to get involved?

Granting permissions within the mailbox is something that users can handle on their own, after you show them how. By the way, you can't prevent a user from granting access to his or her mailbox.

To give Tom access to her Inbox, Maria must

  1. Choose File, Folder, Properties in Outlook to bring up the Properties dialog box, and then switch to the Permissions tab.
  2. On the Permissions tab, click Add.
  3. In the left column of the Add Users dialog box, select Tom's email account, and then click Add to add him to the Add Users column on the right.
  4. Click OK to return to the Permissions tab.
  5. With Tom's name selected, from the Roles list, pick Reviewer.
  6. Click OK to close the Properties dialog box.

Tom can then use the File, Open Special Folder, Exchange Server Folder command in Outlook 97 or the File, Open, Other User's Folder in Outlook 98 to open Maria's Inbox.

Why didn't I direct you to use the Delegates tab (from Tools, Options) to set permissions? Making a person a delegate not only grants access to one or more folders, but it also lets that user send messages with your name and the sender's name in the From field. Maria didn't want to grant that kind of access. She wanted Tom just to be able to read her incoming messages.

Can I create shortcuts within Outlook? I'd like to be able to create a shortcut to a contact within a task to remind myself which person to contact, but I'd like the information to be up-to-date so that if the original contact changes, so does the contact in the task.

You can add a shortcut to any Outlook item's Notes field. The technique is similar to adding a file attachment:

  1. In an open task or other Outlook item, choose Insert, Item.
  2. In the Insert Item dialog box, select a folder from the Look in list at the top, and then select the item you want to insert from the bottom list of items in that folder.
  3. Under Insert as, select Shortcut, and then click OK.

You can also insert file attachments as shortcuts, rather than as attachments that inflate the size of your email messages. Just remember that the recipients need access to the drive where the file is located. Therefore, this technique works only for files on network drives.

We set up shared contacts in a public folder, but now my boss wants to set security on each item to control who can see which contacts. Can we set that kind of security in a public folder with Outlook and Exchange Server?

No, you can't impose item-level security. The only security available is at the folder level. Therefore, you might need to consider using multiple folders to segregate the contacts—manufacturing contacts in the Manufacturing folder, sales contacts in the Sales folder, and so on—with appropriate permissions for each group.

How can I make new custom phone fields take advantage of Outlook's ability to automatically format phone numbers?

If the fields built into Outlook don't suit you, you can always create additional custom fields. However, Outlook offers no method to mark a particular field as a phone number and have it use the automatic phone number formatting. Neither can you add a custom phone number field to the drop-down list of phone fields on the Contacts form.

Can I get the task list to place undated tasks at the bottom and place dated tasks in order at the top?

This arrangement isn't possible without an awkward workaround. The only approach I've been able to devise is to give undated tasks a date far in the future. That way, they'll appear at the bottom of the task list. You just have to remember to ignore those very distant due dates.

I know you can create a public folder to share Contacts among a workgroup. Can you filter the records so that users routinely see only their own records, yet they can view all records when they need to?

Except for appointment forms, which include an Organizer field, Outlook items don't include a field that shows who created the item. However, you can add such a field relatively easily. And so we come to our custom form project for this month. I'll show you how to make two small changes to the basic Contact form to

  • Add a custom field to hold the name of the user who created the item
  • Place the user name in the custom field when the user creates the item

Then, I'll create a custom view to show only a specific user's information. Along the way, you'll see how to manipulate custom fields and controls in an Outlook form. This project assumes that you have created a folder under Public Folders to hold contact items that everyone in your organization can access. Let's add the field first:

  1. Switch to the public Contacts folder, and open a new Contact.
  2. Switch to design mode: In Outlook 97, go to Tools, Design Outlook Form. In Outlook 98, go to Tools, Forms, Design This Form.
  3. Switch to the (P.2) tab.
  4. Click the Toolbox icon to display the toolbox.
  5. Click the TextBox control on the Toolbox (the button labeled ab|, as Screen 2, page 8, shows), and then with the mouse, drag a small rectangle on the (P.2) page to create a text box on the form.
  6. Right-click the new text box and choose Properties.
  7. In the Properties dialog box for the control, click New.
  8. In the New Field dialog box, as Screen 3, page 8, shows, under Name, enter Created by. Leave the Type and Format as Text.
  9. Still in the Properties dialog, switch to the Display tab, and give the text box the name txtCreatedBy. Click OK to close the Properties dialog box.
  10. Choose Form, Display This Page to turn off the display of the second page. The name on the tab will now be (P.2). The parentheses specify that Outlook will hide the page. You don't need to display it to the user. In fact, you won't use this text box directly at all, but adding it to the form ensures that the necessary Created By field is present both on the form and in the folder.

Now, you need to add a little VBScript code to get the user's name and add it to the text box. Choose Form, View Code to get to the Script Editor, and type in the code in Listing 1. You'll attach it to the Open event on the form so that it runs every time you create a new item. A few notes about the code:

  • The If ... End If statement makes sure that the Created by field changes only when you first create the item. A value already in the Created by field, will stay the same if someone modifies the other details on the Contact.
  • The Set statement accesses the part of the Outlook Object Model that contains the user name, based on the current Outlook profile.
  • Item.UserProperties.Find("Created By").Value is the slightly quirky syntax that Outlook uses to access the contents of user-defined fields.

To make this form the default for a public Contacts folder, publish it to that folder. In Outlook 97, choose File, Publish Form As. In Outlook 98, choose Tools, Form, Publish Form. Then, on the General tab of the Properties dialog box for the folder, under When posting to this folder, use, select the form you just published.

Now, to set up Outlook so that it displays just the contacts you created, you need a custom view. I'll create a view that groups the contacts by the Created by field. In the public Contacts folder, choose View, Define Views, then click the New button. In Outlook 98, choose View, Current View, Define Views.

  1. In the Create a New View dialog box, create a Table view named By Creator that you can use on This folder, visible to everyone.
  2. In the View Summary dialog, click Group By.
  3. At the bottom of the Group By dialog box, which you see in Screen 4, under Select available fields from, choose User-defined fields in folder. In the Group items by box at the top of the Group By dialog, select the Created by field. Make sure the Show field in view box is not checked. Otherwise, you'll see the field twice—once in the group header and once for each contact. Under Expand/collapse defaults, you can choose either As last viewed, All expanded, or All collapsed. Click OK.
  4. From the View Summary dialog box, make any other changes to the Fields, Sort, and other settings for the view. Click OK when you're done.
  5. On the Define Views dialog box, click Apply View to put it into action.

Everyone who accesses the folder can use this view. Individual users can create a custom view to filter just their items, using the appropriate value in the Created by field. Outlook 98 users can create a filter to color code their Contact items created with this new custom form.