I dont see any reason why a combo cannot be used, but youre making a confusing logic here:
First you say you want to use the combo to select the company, then you say you want to use it to add a company.. Well for sure these two concepts are exclusive.. There's no way you can have a combo do both at the same time.. why?
Because when you pick an item from the list, the computer has to somehow decide between:
Do you want to navigate to the record denoted by that item?
Do you want to set a field on the current record, to the value that you picked?
I can make a combo that does one or the other at any particular time.
To make a combo that navigates, I set its datasource to the BindingSource (in 1.1 you dont have this, a sort of equivalent is the bindingcontext) and its display member to the field I want to see (company name). I set no bindings that alter data, like bindign the .Text or .SelectedValue properties
The combo navigates the data set, and for a table of 5 rows, whichever row is picked, becomes the current row (on the BindingSource)
If I want a combo that edits, I must at least bind the .Text property (if it is a DropDown combo) or the .SelectedValue (if it is a DropDownList incapable of accepting freetext, or if it is facading an entry i.e. showing me the Name but storing the ID) to the BindingSource.WhicheverField i want to update
In situations like these the combo typically gets its values from elsewhere (a lookup table of discrete [display,value] values)
We dont generally use lookup combos for things like company names, because each company name shouldnt appear that many times, unless we are talking about a limited set of suppliers of goods..
i.e. I have a sales order system, every company that buys something, goes in. I DO NOT make a lookup table of every persopn who has ever ordered off me (cause there will be thousands) but I might make a lookup table of my suppliers (there will only ever be a handful of them)
To have one combo do both selecting and adding, you would have to, in runtime, bind and unbind it from the data source. I think you need to thionk more clearly about what youre trying to achieve.. When you have a firm idea, let me know in detail and I can help.
You can, seeing as VB2005 (2.0) is free, consider upgrading to that. The upgrade cost from 2003 is also very reasonable..
And lastly, please dont think that, because VB6 and VB.NET share a few keywords, that they are analogous, or that you can take VB6 advice and apply it to .NET; in most cases you cannot because VBN is NOT an evolution of VB6 - its a whole new language that reuses an established syntax in order to garner market appeal..