If you want to concatonate the two fields to show in the combo box, there are two ways to do it:
1. Amend the SQL statement to read:
sql = "SELECT ProductID, CompanyProductID & "", "" & ProdName AS Products FROM tblProducts ORDER BY CompanyProductID ASC"
Then, when you use the AddItem method of the combo box, use the field ProdName in your recordset:
Combo1.AddItem rsProducts("ProdName"
2. Select the three distinct fields in the sql statement:
sql = "SELECT ProductID, CompanyProductID, ProdName FROM tblProducts ORDER BY CompanyProductID ASC"
Then when you use the AddItem method of the combo box, use the two fields you want to show:
Combo1.AddItem rsProducts("CompanyProductID"
& ", " & rsProducts("ProdName"
You are probably getting an error on the ItemData method of the combo box, as you are trying to the set the value to a field that is NOT selected in the sql statement.
Although you are using this field to build another composite field, the field rs("CompanyProductID"

does not exist.
To get around both of these errors, try using method #2 above.
You last problem is with
cboProductSelect.ItemData(cboProductSelect.ListIndex).
This may be because ItemData(
Index) only works when
Index >= 0. However, when nothing is selected in the combo box,
ListIndex will be -1, so cboProductSelect.ItemData(cboProductSelect.ListIndex) will equate to cboProductSelect.ItemData(-1) when nothing is selected, so giving an error.
Simon