Copy Outlook 2000 auto complete file?

Hi
I'm upgrading some PCs. The new PCs have Outlook 2003. Most of the old PCs have Outlook 2003 as well, so I'm going to copy the nk2 file. As detaile on
http://office.microsoft.com/en-us/outlook/HA011394511033.aspx
Is there an Outlook 2000 equivalent? That is, an auto complete file I can copy that will work on Outlook 2003?
Thanks
LVL 1
jdhackettAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Chris BottomleySoftware Quality Lead EngineerCommented:
I'm afraid autocomplete wasn't present in outlook 2000 but it is possible to create an initial file in 2003 using a macro if you want?

Chris
0
Chris BottomleySoftware Quality Lead EngineerCommented:
To create via macro:

Ensure auto population of to/cc/bcc is enabled:
    Tools | Options | eMail Options | Advanced eMail Options | Suggest Names whilst Completing - tick checkbox to enable.


Insert the following snippet into a code module and call by using: rebuildNK2.

To prevent inadvertent send, disconnect the network / modem connection for example this is necessary because the NK2 is only created on send/receive.

Chris

To Create a macro:
------------------

Alt + F11 to open the macro editor

  For User Code:
     Insert | Module to insert a code module into the project
     In the project tree select the module.
     Insert the required macro(s) into the selected module, ('Module1' or similar)

Close the Visual Basic Editor.

Check Security as appropriate:
------------------------------

In the application select Tools | Macro | Security
2003 and Earlier : Select Medium
2007 : Warnings for all Macros
Select OK

To run a macro:
---------------

Alt + F8
Select the macro
Select 'Run'
Public Sub rebuildNK2()
    If MsgBox("Cancel now if you are not working offline (otherwise you will send a blank email to everyone you have ever sent en email to).", vbOKCancel, "Confirm you are Offline") = vbCancel Then Exit Sub
    rebuildNK2_Tx
    rebuildNK2_Rx
End Sub
Public Sub rebuildNK2_Tx()
Dim olApp As Object
Dim oSentItems As Object
Dim oEmail As Object
Dim oNewEmail As Object
Dim oToString As String
Dim oRecipientName As Object
Dim oEmailSubject As String
Dim filt As String
Dim mai As Object
Dim mailCount As Integer
Dim fldr As Object
 
    oEmailSubject = "Build Nickname Emails"
 
    Set oSentItems = Application.Session.GetDefaultFolder(olFolderSentMail)
 
    For Each oEmail In oSentItems.Items
        If oEmail.Class = olMail Then
            On Error GoTo assumeEncrypted
            For Each oRecipientName In oEmail.Recipients
                If InStr(1, oRecipientName.Address, "@") <> 0 And InStr(1, oToString, oRecipientName.Address) = 0 And oRecipientName.Resolve Then
                    oToString = oToString + oRecipientName.Address + ";"
                End If
            Next
        End If
assumeEncrypted:
    On Error GoTo 0
    Next
    
    SendReceiveAll  ' Just in case user is online try and avoid accidental send
    Set oNewEmail = Application.CreateItem(olMailItem)
    oNewEmail.To = oToString
    oNewEmail.Subject = oEmailSubject
    oNewEmail.Send
    filt = oEmailSubject
    Set mai = Application.Session.GetDefaultFolder(4).Items.Find("[Subject]=" & filt)
    mai.Delete

End Sub
Public Sub rebuildNK2_Rx()
Dim olApp As Object
Dim myNameSpace As Object
Dim oSentItems As Object
Dim oEmail As Object
Dim oNewEmail As Object
Dim oToString As String
Dim oRecipientName As Object
Dim oEmailSubject As String
Dim filt As String
Dim mai As MailItem
Dim mailCount As Integer
Dim fldr As Object
 
    Set olApp = Application
    oEmailSubject = "Build Nickname Emails"
 
    Set myNameSpace = olApp.Session
    Set oSentItems = myNameSpace.GetDefaultFolder(olFolderInbox)
 
    For mailCount = 1 To oSentItems.Items.count
        On Error GoTo assumeEncrypted
        If oSentItems.Items(mailCount).Class = olMail Then
            Set oEmail = oSentItems.Items(mailCount)
            If InStr(1, oEmail.sendereMailAddress, "@") <> 0 And InStr(1, oToString, oEmail.sendereMailAddress) = 0 Then
                oToString = oToString + oEmail.sendereMailAddress + ";"
            End If
        End If
assumeEncrypted:
    Next
    
    SendReceiveAll  ' Just in case user is online try and avoid accidental send
    Set oNewEmail = olApp.CreateItem(olMailItem)
    oNewEmail.To = oToString
    oNewEmail.Subject = oEmailSubject
    oNewEmail.Send
    filt = oEmailSubject
    Set mai = olApp.Session.GetDefaultFolder(4).Items.Find("[Subject]=" & filt)
    mai.Delete

End Sub

Public Function SendReceiveAll() As Boolean
' As defined in http://www.freevbcode.com/ShowCode.asp?ID=2139
Dim oExplorer As Outlook.Explorer
Dim olNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim oCtl As Office.CommandBarControl
Dim oPop As Office.CommandBarPopup
Dim oNS As Outlook.NameSpace
Dim oCB As Office.CommandBar
Dim oOutlookApplication As Outlook.Application

    On Error Resume Next
    
    Set oOutlookApplication = GetObject(, "Outlook.Application")
    If oOutlookApplication Is Nothing Then
        err.Clear
        On Error GoTo ErrorHandler
        Set oOutlookApplication = _
              CreateObject("Outlook.Application")
        Set olNS = oOutlookApplication.GetNamespace("MAPI")
        Set olFolder = olNS.GetDefaultFolder(olFolderInbox)
        Set oExplorer = olFolder.GetExplorer
    End If
    
    On Error GoTo ErrorHandler
    Set oCB = _
       oOutlookApplication.ActiveExplorer.CommandBars("Standard")
    
    Set oCtl = oCB.Controls("Send/Receive")
    oCtl.Execute
    SendReceiveAll = True
    
ErrorHandler:
    
End Function

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Sector5Commented:
Hi jdhackett,

Chris is right, in Outlook 2000 the function wasn't available, they only added in Outlook 2003. You don't need a macro -as far as I know because Outlook 2003 automatically created a /nk2 file when you setup the mailbox and send mails.

Hope this helps.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Chris BottomleySoftware Quality Lead EngineerCommented:
Sector5:

The point is that it will only setup the NK2 when you send/receive and only for those addresses in that email.  The point of the macro is to initialise that file for every email previously sent/recieved in the PST.

Chris
0
Chris BottomleySoftware Quality Lead EngineerCommented:
Glad it helped

Chris
0
Sector5Commented:
At Chris:

Aaah, I understand.

Good answer.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Outlook

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.