This famous mixed data types problem
For example:
* In your eight (8) scanned rows, if the column contains five (5) numeric values and three (3) text values, the provider returns five (5) numbers and three (3) null values.
* In your eight (8) scanned rows, if the column contains three (3) numeric values and five (5) text values, the provider returns three (3) null values and five (5) text values.
* In your eight (8) scanned rows, if the column contains four (4) numeric values and four (4) text values, the provider returns four (4) numbers and four (4) null values.
As a result, if your column contains mixed values, your only recourse is to store numeric values in that column as text, and to convert them back to numbers when needed in the client application by using the Visual Basic VAL function or an equivalent.
and there is nothing you can do about it.
All solutions created by Microsoft for loading data from Excel do not work (so far).
That includes DTS, SSIS, ODBC, OleDB, Jet and .Net
My suggestion do not use ODBC or OLE DB to load data from excel
Use Advanced ETL processor. It works correctly with Excel all the time.
Load data into database and than do all sql manipulations there.
Peter