Abstract:
A method, system and computer readable medium for providing for providing a function item, such as a key, button, icon, or menu, tied to a user operation in a computer, whereby a single click on the function item in a window or program on a computer screen, or one single selection in a menu in a program, initiates retrieval of name and addresses and/or other person or company related information, while the user works simultaneously in another program, e.g., a word processor. The click on the function item initiates a program connected to the button to search a database or file available on or through the computer, containing the person, company or address related data, in order to look up data corresponding to what the user types, or partly typed, e.g., name and/or address in the word processor, the correct data from the database, data related to the typed data, e.g., the name of the person, company, or the traditional or electronic address, or other person, or company, or address related data, and alternatively the persons, companies, or addresses, are displayed and possibly entered into the word processor, if such related data exists.

Description:
CROSS REFERENCES TO RELATED APPLICATIONS 
       [0001]    The present application is a continuation of U.S. application Ser. No. 09/923,134 filed on Aug. 6, 2001, which in turn is a continuation of U.S. application Ser. No. 09/189,626 filed on Nov. 10, 1998, and which issued as U.S. Pat. No. 6,323,853. Each of the above-described applications is hereby incorporated by reference in their entireties. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    This invention relates to a method, system and computer readable medium for name and address handling (hereinafter called “address handling”), and more particularly to a touch screen, keyboard button, icon, menu, voice command device, etc. (hereinafter called “button”) provided in a computer program, such as word processing program, spreadsheet program, etc., and coupled to an information management source for providing address handling within a document created by the computer program. 
         [0004]    2. Discussion of the Background 
         [0005]    In recent years, with the advent of programs, such as word processors, spreadsheets, etc. (hereinafter called “word processors”) users may require retrieval of information, such as name and address information, etc., for insertion into a document, such a letter, fax, etc., created with the word processor. Typically, the information is retrieved by the user from an information management source external to the word processor, such as a database program, contact management program, etc., or from the word processor itself, for insertion into the document. Examples of such word processors are WORD™, NOTEPAD™, EXCEL™, WORDPAD™, WORDPERFECT™, QUATROPRO™, AMIPRO™, etc., and examples of such information management sources are ACCESS™, OUTLOOK™, ORACLE™, DBASE™, RBASE™, CARDFILE™, etc. 
         [0006]    However, the information in the database must constantly be updated by the user. This requires the user to learn how to use and have access to the database. In this case, a change in the information, such as change in address or a name, etc., requires the user of the word processor to implement this change in the database, or alternatively, the change is made to the database centrally by a database administrator. 
       SUMMARY OF THE INVENTION 
       [0007]    Accordingly, an object of the present invention is to provide a method, system and computer readable medium for address handling within a computer program. 
         [0008]    Another object of the present invention is to provide a method, system and computer readable medium for address handling within a computer program, such as a word processing program, spreadsheet program, etc. 
         [0009]    Another object of the present invention is to provide a method, system and computer readable medium for address handling within a computer program, such as a word processing program, spreadsheet program, etc., using an input device provided in the computer program. 
         [0010]    Another object of the present invention is to provide a method, system and computer readable medium for address handling within a computer program, such as a word processing program, spreadsheet program, etc., using an input device, such as a touch screen, keyboard button, icon, menu, voice command device, etc., provided in the computer program and coupled to an information management source. 
         [0011]    Another object of the present invention is to provide a method, system and computer readable medium for address handling within a computer program, such as a word processing program, spreadsheet program, etc., using an input device such as a touch screen, keyboard button icon, menu, voice command device, etc., provided in the computer program and coupled to an information management source, such as a database program, contact management program, etc. 
         [0012]    The above and other objects are achieved according to the present invention by providing a novel method, system and computer readable medium for providing a function item, such as a key, button, icon, or menu, tied to a user operation in a computer, whereby a single click on the function item in a window or program on a computer screen, or one single selection in a menu in a program, initiates retrieval of name and addresses and/or other person or company related information, w while the user works simultaneously in another program, e.g., a word processor. The click on the function item initiates a program connected to the button to search a database or file available on or through the computer, containing the person, company or address related data, in order to look up data corresponding to what the user types, or partly typed, e.g., name and/or address in the word processor, the correct data from the database, data related to the typed data, e.g., the name of the person, company, or the traditional or electronic address, or other person, or company, or address related data, and alternatively the persons, companies, or addresses, are displayed and possibly entered into the word processor, if such related data exists. 
         [0013]    The present invention also includes a computer readable medium storing program instructions by which the method of the invention can be performed when the stored program instructions are appropriately loaded into a computer, and a system for implementing the method of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    The invention description below refers to the accompanying drawings, of which: 
           [0015]      FIG. 1  is a flow chart illustrating a method for address handling within a computer program, according to an exemplary embodiment of the present invention; 
           [0016]      FIG. 2  is a flow chart illustrating a method for address handling within a computer program, according to another exemplary embodiment of the present invention; 
           [0017]      FIG. 3  is a screen shot illustrating the inputting of a name to be searched and an address handling button within a word processor, according to an exemplary embodiment of the present invention; 
           [0018]      FIG. 4  is a screen shot illustrating a retrieved address in a word processor, according to an exemplary embodiment of the present invention; 
           [0019]      FIG. 5  is a screen shot illustrating the inputting of a name and address to be searched and an address handling button within a word processor, according to an exemplary embodiment of the present invention; 
           [0020]      FIG. 6  is a screen shot illustrating an add new contact message window, according to an exemplary embodiment of the present invention; 
           [0021]      FIG. 7  is a screen shot illustrating a contact register message window, according to an exemplary embodiment of the present invention; 
           [0022]      FIG. 8  is a screen shot illustrating an address missing message window, according to an exemplary embodiment of the present invention; 
           [0023]      FIG. 9  is a screen shot illustrating a modify contact&#39;s address message window, according to an exemplary embodiment of the present invention; 
           [0024]      FIG. 10  is a screen shot illustrating a select a contact address register message window, according to an exemplary embodiment of the present invention; 
           [0025]      FIG. 11  is a screen shot illustrating a more detailed mode of registering an additional address for the contact register of  FIG. 9 , according to an exemplary embodiment of the present invention; 
           [0026]      FIG. 12  is a screen shot illustrating a contact management program window in a full detailed mode, according to an exemplary embodiment of the present invention; 
           [0027]      FIG. 13  is a screen shot illustrating an address already in use message window, according to an exemplary embodiment of the present invention; 
           [0028]      FIG. 14  is a screen shot illustrating the inputting of a name to be searched and an address handling button within a spreadsheet, according to an exemplary embodiment of the present invention; 
           [0029]      FIG. 15  is a screen shot illustrating a retrieved address in a spreadsheet, according to an exemplary embodiment of the present invention; and 
           [0030]      FIG. 16  is a schematic illustration of a general purpose computer for performing the processes of the present invention, according to an exemplary embodiment of the present invention. 
       
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0031]    In an embodiment of the present invention, single button addressing is a achieved by providing an input device, such as a touch screen, keyboard, icon, menu, voice command device, etc. (hereinafter called “button), in a computer program, such as a word processing program, spreadsheet program, etc. (hereinafter called “word processor), for executing address handling therein. 
         [0032]    Accordingly, in a word processor, the button is added and a user types information, such as an addressee&#39;s name, or a part of the name, etc. in a document created with the word processor, such as a letter, fax, etc., and then clicks, selects, commands, etc. the button via the appropriate input device, such as a touch screen button, keyboard button, icon, menu choice, voice command device, etc. A program then executes and retrieves the typed information from the document, and searches an information management source, such as a database, file, database program, contact management program, etc. (hereinafter called “database”) to determine if the information, such as the name or part of the name typed and searched by the program exists in the database. If the program does not find stored information, such as a name, corresponding to the name or part of the name typed, the user is asked by the program whether the information, such as the name that was not found, should be added to the database. In addition, the user may enter any other information besides the name, such as addresses, businesses, telephone numbers, fax numbers, e-mail address, etc., so that this other information can be stored in the database for later use. 
         [0033]    If the program finds name(s) and address(es) corresponding to the part of the addressee&#39;s name typed, this additional information is automatically entered into the user&#39;s word processor, optionally with a confirmation from the user that this is the correct data. If the typed address information does not correspond to data already stored in the database, after clicking on the button, the program, for example, lets the user decide: (1) if this is new data (e.g., a new address) for an existing contact; (2) if the stored data should be changed to what the user just typed; (3) if this is a new contact with the same name as the one already entered into the database; or (4) if the typed address is only to be used once, and therefore not to be stored in the database at all. If, later, for example, a name with several address stored in the database is recalled all addresses for this contact will be displayed, so that the correct address can be selected by the user. 
         [0034]    The program may be extended to also store and retrieve other information, such as telephone numbers, fax numbers, e-mail addresses, etc. Once the program recalls the telephone numbers, fax numbers, email addresses, etc., the user can command the program to send e-mails, faxes, etc. Similarly, if the user types in the name of a mailing list, the program create merge letters, group emails, etc. 
         [0035]    Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, and more particularly to  FIGS. 1 and 2  thereof, there is illustrated flow charts of single button addressing, according to exemplary embodiments of the present invention. 
         [0036]    In  FIG. 1 , after the user has inserted the address in the word processor, the user commands the button at step  2  and the program analyzes what the user has typed in the document at step  4 . AT step  6 , the program decides what was found in the document and if the program found nothing in the document or what it found was un-interpretable the program goes to step  8  and outputs an appropriate message to the user and then quits at step  16 . The program analyzes what the user has typed in the document at step  4 , for example, by analyzing (i) paragraph/line separations/formatting, etc.; (ii) street, avenue, drive, lane, boulevard, city, state, zip code, country designators and abbreviations, etc.; (iii) Mr., Mrs., Sir, Madam, Jr., Sr. designators and abbreviations, etc.; (iv) Inc., Ltd., P.C., L.L.C, designators and abbreviations, etc.; and (v) a database of common male/female names, etc. 
         [0037]    If the program find an e-mail address mailing list/category name telephone number or other information, at step  10  an appropriate action is performed by the program and then the program execution quits at step  16 . If the program only finds a name or initials, or the like, the program looks up the name in the database at step  12  and at step  18  the program determines what was found. If the program finds more than one possible contact/address match, at step  20  the program displays menu choices to the user to let him choose an appropriate answer. Then at step  22  the program inserts a correct address and name in the document and then at step  16  the program quits execution. If the program finds one match exactly, i.e., one contact with one address, the program inserts the correct address and name in the document at step  22  then quits and then quits execution at step  16 . If the program does not find a name in the database, at step  24  the program prompts the user to specify an address and then quits execution at step  16 . If the program at step  6  finds a name and an address, at step  14  the name is looked up in the database. Then, at step  26 , if no match is found, at step  28  the program inserts an address and a name which are possibly corrected by the user into the database and then quits execution at step  16 . If at step  26 , the name and address is found, at step  32  the program either takes no action or displays the data for the user to edit. If at step  26 , the name is found but not the address, the program prompts the user for a decision at step  30 . If the user decides that this is another contact with a same name, the program goes to step  28 . If the user decides that this is a one time occurrence, no action is taken and the program quits at step  16 . If the user decides that the contact has, for example, moved and that this is a new address, at step  34  one of the old addresses for the contact is replaced with the new one and the program with the new one and the program quits at step  16 . If the user decides that this is an additional address for the contact, at step  36  the additional address is inserted into the database for that contact and execution quits at step  16 . 
         [0038]    The flowchart shown in  FIG. 2  is similar to the flowchart in  FIG. 1 , except for some additional steps which will now be discussed. At step  6 , if the program only finds a name or a similar name then the name is looked up in the database at step  12 , then at step  18  if the program found more than one possible contact/address match, the program displays choices to the user to let him choose an address at step  20 . Then at step  21  the user decides whether to insert the selected address into the document. If the user does not decide to select the address into the document the program quits execution at step  16 . If the user decides to insert the selected address into the document the program inserts the address and name into the document at step  22  and then quits at step  16 . 
         [0039]    If the program finds a name and address in the database at step  6 , then at step  14  the program looks up the name in the database and at step  26  the program determines what it has found. If the program does not find the name at step  26 , at step  27  the program prompts the user for a decision and review and whether to insert the contact and address. If the user does not decide to insert the contact address, the program quits at step  16 . If the user decides to insert the contact address, at step  28  the program inserts the address and name which may be possibly corrected by the user for program in the database then execution quits at step  16 . 
         [0040]    If at step  26  the program finds a name and not an address, then at step  29  the name is looked up in the database. Then at step  31  the program decides whether this contact has another address. If the contact does not have another address, at step  33  the program prompts the user for a decision and review and whether to add the address. If the user does not want to add the address at step  33 , the program quits at step  16 . If the user wants to add the address at step  33  because this is an additional address for the contact, at step  36  the address is inserted in the database for the contact and execution quits at step  16 . 
         [0041]    At step  30 , if the user decides that this is another contact with the same name, then the program goes to step  28 . If at step  30  the user decides that this is a one time occurrence, then the program quits at step  16 . If at step  30 , the user decides that the contact has, for example, moved, the program goes to step  34 . If at step  30 , the user decides that this is an additional address for the contact, at step  36  the program inserts the address in the database for the contact and then quits at step  16 . 
         [0042]    Various exemplary screen shots which are generated during execution of the program, according to the present invention, will now be described with reference to  FIGS. 3-15  and examples 1-7 as follows. 
       Example 1 
     Retrieving an Existing Address from the Database 
       [0043]      FIG. 3  illustrates a starting point in word processor document such as WORD document, wherein the user has typed a name  40 . The user hits the button  42 , for example, marked “OneButton” and the program according to the present invention retrieves the name  40  from the document, searches a database for the name  40 , and inserts the retrieved address  44  associated with the name  40  into the document as shown in, for example,  FIG. 4 . 
         [0044]    The above example corresponds to steps  2 ,  4 ,  6 ,  12 ,  18 ,  22  and  16  in the flow charts of  FIGS. 1 and 2 . 
       Example 2 
     Adding a New Contact to the Database 
       [0045]      FIG. 5  illustrates a starting point in word processor document such as WORD document, wherein the user has typed a name and address of a new contact  46 . The user commands the button  42 ; for example, marked “OneButton,” and the program according to the invention retrieves the new contact  46  from the document, searches a database for the name of the new contact  46  and generates a screen as shown in, for example,  FIG. 6 . This screen includes a message  50  informing the user that the new contact does not exist in the database, a message  52  including the address retrieved from the document, an address type selection  54 , such as home, business, etc., and “OK,” “Details,” and “Cancel” buttons  56 ,  58 , and  60 , respectively. 
         [0046]    At this point, the user can cancel the operation by commanding the Cancel button  60 , ask the program to store data in the database and return the document by commanding the OK button  56 , or check details before storing data into the database by commanding the Details button  58 . If the user commands the Details button  58 , as shown in, for example,  FIG. 7 , a message screen is provided so that the user can review and edit data  62  and the selection  54 , store the data  62  and  54  in the database by commanding a “Add and Choose” button  64 , see more options by commanding an “Options” button  66 , or cancel the operation by commanding the Cancel button  60 . 
         [0047]    The above example corresponds to steps  2 ,  4 ,  6 ,  14 ,  26 ,  28  and  16  in the flow chart of  FIG. 1  and steps  2 ,  4 ,  6 ,  14 ,  26 ,  27 ,  28  and  16  in the flow chart of  FIG. 1  and steps  2 ,  4 ,  6 ,  26 ,  27 ,  28  and  16  in the flow chart of  FIG. 2 . 
       Example 3 
     Try to Retrieve Existing Address, but Contact is Not in Database 
       [0048]      FIG. 3  illustrates a starting point in word processor document, such as WORD document, wherein the user has typed a name of a contact  40 . The user commands the button  42 , for example, marked “OneButton,” and the program according to the present invention retrieves the name  40  from the document, searches a database for the name of the contact  40  and generates a screen as shown in, for example,  FIG. 8 . This screen includes a message  68  informing the user that the contact does not exist in the database and to specify an address, and “OK” buttons  56 . At this point when the user commands the OK button  56 , the user returns to the document so that he contact&#39;s address can be included as in Example 2 above. 
         [0049]    The above example corresponds to steps  2 ,  4 ,  6 ,  12 ,  18 ,  24 , and  16  in the flow of charts of  FIGS. 1 and 2 . 
       Example 4 
     Adding a New Address for an Existing Contact 
     Short Version 
       [0050]      FIG. 4  illustrates a starting point in word processor document, such as WORD document, wherein the user has typed a name and new address of an existing contact  44 . The user commands the button  42 , for example, marked “OneButton,” and the program according to the present invention retrieves the existing contact  44  from the document, searches a database for the same name of the existing contact  44  and generates a screen as shown in, for example,  FIG. 9 . This screen includes a message  70  informing the user that the contact already exists in the database with an existing address, a message  72  including the existing address, add new contact with same name selection  74 , change existing address selection  76 , use existing address in document selection  78 , add the new address contact selection  80 , the address type selection  54 , such as home, business, etc., and the “OK,” “Details,” and “Cancel” buttons  56 ,  58  and  60  respectively. AT this point, the user may select one of the four options  74 - 80 , and command the OK button  56  to execute the selected options. The user can also cancel the operation by commanding the Cancel button  60 , or check details before storing data into the database by commanding the Details button  58 . 
         [0051]    The above example corresponds to steps  2 ,  4 ,  6 ,  14 ,  26 ,  28 ,  30 ,  34 ,  36 , and  16  in the flow chart of  FIG. 1  and steps  2 ,  4 ,  6 ,  14 ,  26 ,  29 ,  31 ,  30 ,  28 ,  34 ,  36 , and  16  in the flow chart of  FIG. 2 . 
       Example 5 
     Selecting Between Several Possible Matching Addresses 
       [0052]      FIG. 3  illustrates a starting point in word processor document, such as WORD document, wherein the user has typed a name and possibly address of at least one existing contact  40 . The user commands the button  42 , for example, marked “OneButton,” and the program according to the present invention retrieves the existing contact  40  from the document, searches a database for the name of the existing contact  40  and generates a screen as shown in, for example,  FIG. 10 . This screen includes a message informing the user the name corresponds to several addresses and possible contacts which already exist in the database, with existing contacts and addresses for selection  82 , a message  84  including the full name and address for the contact that the user selects in  82 ; the Options button  66 , a “Choose” button  86 , a “Full details” button  88 , a “More &gt;&gt;&gt;” button  90 , and the Cancel button  60 . The above screen indicates to the user that at least one contact with the same name exists, and that there are more than one addresses and/or contacts that match. 
         [0053]    At this point the user may command the Choose button  86  to use the selected address and return to the document, or the user may command the More &gt;&gt;&gt; button  90  to view how the program interpreted what he user typed in the word processor, and possibly change this data, wherein the program generates an updated screen as shown in, for example,  FIG. 11 . The updated screen includes the data  62  which displays the name for example,  FIG. 11 . The updated screen includes the data  62  which displays the name typed in the word processor as interpreted by the program, address fields, and the fields for the address type selection  54 , such as home, business, etc., which may be changed by the user before the program stores it in the database, the Add and Choose button  64 , a “&lt;&lt;&lt;Less” button  90  corresponding to the More&gt;&gt;&gt; button  90  for returning to the screen of  FIG. 10 , and an “Add this address to the selected contact above” button  92 . The user might then command the Add this address to the selected contact above button  92  and the result in the word processor is illustrated in  FIG. 4 . The user can also cancel the operations by commanding the Cancel button  60 , or command the add choose button  64  to add this name and address as a new contact and address, or open the database before storing data into the database by commanding a “Full details” button  88  as will be later described. 
         [0054]    The above example corresponds to steps  2 ,  4 ,  6 ,  12 ,  18 ,  20 ,  22 , and  16  in the flow chart of  FIG. 1  and steps  2 ,  4 ,  6 ,  12 ,  18 ,  20 ,  21 ,  22 , and  16  in the flow chart of  FIG. 2 . 
       Example 6 
     Adding a New Address for an Existing Contact 
     Long Version 
       [0055]      FIG. 4  illustrates a starting point in word processor document, such as WORD document, wherein the user has typed a name and new address of an existing contact  44 . The user commands the button  42 , for example, marked “OneButton,” and the program according to the present invention retrieves the existing contact  44  from the document, searches a database for the name of the existing contact  44  and generates a screen as shown in, for example,  FIG. 9 . As previously described the screen includes a message  70  informing the user that the contact already exists in the database with an existing address, and the user may command the Details button  58  to see the details of the new address for potentially modify the details before they are stored in the database and the program generates a screen as shown in, for example,  FIG. 10 . From this screen, the user may choose to use another address than the one he typed, and return to the document, or the user may command the “Full details” button  88  to enter a database program, such as OUTLOOK™, directly as shown in, for example,  FIG. 12 . In  FIG. 12 , the database program, such as OUTLOOK™, may include portions  94 - 104  for allowing the user to modify various pieces of data before they are stored in the database. 
         [0056]    Alternatively, in the screen shown in  FIG. 10 , the user may command the More&gt;&gt;&gt; button  90  at which time the program generates the screen as shown in, for example,  FIG. 11  and as previously described. In this screen, the user might then command the Add this address to the selected contact above button  92 . If the address typed is already in use, the program generates a screen including a message  106 , and “Yes” and “No” buttons,  108  and  110 , respectively, as shown in, for example,  FIG. 13 . If the user hits the Yes button  108  the program overwrites the contact address with the address specified by the user (e.g., if the contact has moved) and the result in the word processor is shown in, for example  FIG. 4 . 
         [0057]    The above example corresponds to steps  2 ,  4 ,  6 ,  12 ,  14 ,  26 ,  28 ,  30 ,  34 ,  36 , and  16  in the flow chart of  FIG. 1  and steps  2 ,  4 ,  6 ,  12 ,  14 ,  26 ,  29 ,  31 ,  30 ,  28 ,  34 ,  36 , and  16  in the flow chart of  FIG. 2 . 
       Example 7 
     Spreadsheet Application 
       [0058]      FIG. 14  illustrates a starting point in word processor document, such as an EXCEL spreadsheet, wherein the user has typed a name  112 . The user hits the button  42 , for example, marked “OneButton,” and the program according to the present invention retrieves the name  112  from the spreadsheet, searches a database for the name  112 , and inserts the retrieved address  114  into the spreadsheet as shown in, for example,  FIG. 15 . Accordingly, the examples 1-6 apply not only to word processor documents, such as WORD™ documents, etc., but to other word processor documents, and spreadsheets, such as EXCEL™ spreadsheets, etc. 
         [0059]    The above example corresponds to steps  2 ,  4 ,  12 ,  18 ,  22 , and  16  in the flow of charts  FIGS. 1 and 2 . 
         [0060]      FIG. 16  is a schematic illustration of a computer system for implementing the single button addressing according to the present invention. A computer  200  implements the method of the present invention, wherein the computer includes, for example, a display device  202 , such as a conventional display device or a touch screen monitor with a touch screen interface, etc., a keyboard  204 , a pointing device  206 , a mouse pad or digitizing pad  208 , a hard disk  210 , or other fixed, high density media drives, connected using an appropriate device bus (e.g., a SCSI bus, an Ultra DMA bus, a PCI bus, etc.), a floppy drive  212 , a tape or CD ROM drive  214  with tape or CD media  216 , or other removable media devices, such as magneto-optical media, etc., and a mother board  218 . The mother board  218  includes, for example, a processor  220 , a RAM  222 , and ROM  224  (e.g., DRAM, ROM, EPROM, EEPROM, SRAM, SDRAM, and Flash RAM, etc.), I/O ports  226  which may be used to couple to external devices, networks, etc., (not shown), and optional special purpose logic devices (e.g., ASICs) or configurable logic devices (e.g., GAL and re-programmable FPGA)  228  for performing specialized hardware/software functions, such as sound processing, image processing, signal processing, neural network processing, object character recognition (OCR) processing, etc., a microphone  230 , and a speaker or speakers  232 . 
         [0061]    As stated above, the system includes at least one computer readable medium or alternatively, the computer readable medium may be accessed through various paths, such as networks, internet, drives, etc. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, Flash, EPROM), DRAM, SRAM, SDRAM, etc. Stored on any one or on a combination of computer readable media, the present invention includes software for controlling both the hardware of the computer  200  and for enabling the computer  200  to interact with a human user. Such software may include, but is not limited to, device drivers, operating systems and user applications, such as development tools. Such computer readable media further includes the computer program product of the present invention for performing any of the processes according to the present invention, described above (see, e.g.,  FIGS. 1-15 ). The computer code devices of the present invention can be any interpreted or executable code mechanism, including but not limited to scripts, interpreters, dynamic link libraries, Java classes, and complete executable programs, etc. 
         [0062]    The invention may also be implemented by the preparation of application specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art. 
         [0063]    Address handling, according to this invention; is a significant simplification relative to existing methods, and requires little or no training on the part of a user, as correct addresses are retrieved with a minimal number of user commands, “clicks,” keystrokes, etc. In addition, a program according to the present invention, can be programmed and created in most existing programming languages and be connected to most modern word processors. Therefore, according to the present invention, the process of creating and updating records in an address database is significantly simplified, since this may now be performed directly from the word processor. 
         [0000]    Although the present invention is defined in terms of word processing documents, such as WORD™ documents and EXCEL™ spreadsheets, the present invention is applicable to all types of word processing documents such as NOTEPAD™, WORDPAD™, WORDPERFECT™, QUATROPRO™, AMIPRO™, etc., as will be readily apparent to those skilled in the art. 
         [0064]    Although the present invention is defined in terms of information management or database programs, such as OUTLOOK™ etc., the present invention is applicable to all types of information management or database programs such as ACCESS™, ORACLE™, DBASE™, RBASE™, CARDFILE™, including “flat files,” etc., as will be readily apparent to those skilled in the art. 
         [0065]    Although the present invention is defined in terms of providing an input device, such as a button  42  in a word processor for address handling therein, the present invention may be practiced with all types of input devices, such as touch screen, keyboard button, icon, menu, voice command device, etch, as will be readily apparent to those skilled in the art. 
         [0066]    Although the present invention is defined in terms of a program retrieving information from a document before searching a database, the user may select the information in the document to be searched by the program in the database (e.g., by highlighting, selecting, italicizing, underlining, etc.), as will be readily apparent to those skilled in the art. 
         [0067]    Although the present invention is defined in terms of a program retrieving a name or portion thereof from a document before searching a database the program may retrieve an address or portion thereof from the document before searching the database and insert, correct, complete, etc., the retrieved address based on the information found in the database corresponding to the retrieved address or portion thereof, as will be readily apparent to those skilled in the art. 
         [0068]    Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of appended claims, the invention may be practiced otherwise than as specifically described herein. 
         [0069]    This application claims priority and contains subject matter related to Norwegian patent application No. 984066 filed on Sep. 3, 1998, the entire contents of which are hereby incorporated by reference.