Remove recent contacts from local names

LotusScript button to remove individual names that have been cached in $users view of local address book. This script is from TN 139749


Sub Click(Source As Button)
        Dim sess As New NotesSession
        Dim db As NotesDatabase
        Dim view As NotesView
        Dim doc As NotesDocument
        Dim contact As String
        Dim tempInternetAddress As String
        Dim tempMailAddress As String
        Dim result As Integer
        Dim confirmResult As Integer
       
        ' Getting local names.nsf
        Set db = sess.GetDatabase("","names.nsf",False)
        If db Is Nothing Then
                Messagebox "Unable to find local name.nsf.  Exiting..."
                Exit Sub
        End If
        ' Getting recent contacts view
        Set view = db.GetView("RecentCollaborators")
       
        contact = ""
        ' Prompting user for name
        contact = Lcase(Cstr(Inputbox("Please input an internet address Notes adress, examples:" + Chr(13) + Chr(10) + "[email protected] or User/Org")))
        If contact = "" Then
                Messagebox "You must enter in a value. Exiting..."
                Exit Sub
        End If
       
        ' Getting first document in view
        Set doc = view.GetFirstDocument
       
        ' If the document is of an smtp (internet address) then search the InternetAddress field other wise search the MailAddress (Notes Name) field
        If Instr(contact,"@") Then
                While Not doc Is Nothing
                        tempMailAddress = ""
                        tempInternetAddress = ""
                        tempInternetAddress = Lcase(doc.InternetAddress(0))
                        If tempInternetAddress <> "" Then
                                If Instr(tempInternetAddress,contact) Then
                                        tempMailAddress = doc.MailAddress(0)
                                        result = Messagebox ("Do you want to delete user (" + tempMailAddress + ") with internet address (" + tempInternetAddress + ") or cancel serach?",3 + 32)
                                        If result = 2 Then ' Canceling Search
                                                Exit Sub
                                        Elseif result = 6 Then ' Requesting deletion
                                                confirmResult = Messagebox ("Confirm deletion" , 4)
                                                If confirmResult = 6 Then ' Confirm Deletion
                                                        Call doc.Remove(True)
                                                        Messagebox "Message deleted.  Exiting...."
                                                        Exit Sub
                                                End If
                                        Else ' Otherwise continue search
                                                Print "Continuing to search...."
                                        End If
                                End If
                        End If
                        Set doc = view.GetNextDocument(doc)
                Wend
        Else
                Dim tempName As NotesName
                Set tempName = sess.CreateName(contact)
                contact = Lcase(tempName.Canonical)
                While Not doc Is Nothing
                        tempMailAddress = ""
                        tempInternetAddress = ""
                        tempMailAddress = Lcase(doc.MailAddress(0))
                        If tempMailAddress <> "" Then
                                If Instr(tempMailAddress,contact) Then
                                        tempInternetAddress = doc.InternetAddress(0)
                                        result = Messagebox ("Do you want to delete user (" + tempMailAddress + ") with internet address (" + tempInternetAddress + ") or cancel serach?",3 + 32)
                                        If result = 2 Then ' Canceling Search
                                                Exit Sub
                                        Elseif result = 6 Then ' Requesting deletion
                                                confirmResult = Messagebox ("Confirm deletion" , 4)
                                                If confirmResult = 6 Then ' Confirm Deletion
                                                        Call doc.Remove(True)
                                                        Messagebox "Message deleted.  Exiting...."
                                                        Exit Sub
                                                End If
                                        Else ' Otherwise continue search
                                                Print "Continuing to search...."
                                        End If
                                End If
                        End If
                        Set doc = view.GetNextDocument(doc)
                Wend
        End If
End Sub