copyfromrecordset excel vb6 ado

copyfromrecordset - Excel to ADO RecordSet tiene valores vacíos para celdas numéricas



copyfromrecordset vba (2)

Tuve un problema similar, pero a la inversa, donde los números aparecían bien, pero los alfas no. Después de agregar

;IMEX=1

para las Propiedades Extendidas, funcionó bien.

IMEX=1 significa siempre leer columnas de datos mixtos como texto.

Estoy tratando de importar algunos datos para trabajar desde un archivo de Excel, pero estoy teniendo problemas con los valores numéricos de las celdas. Tengo algunas columnas que tendrán valores donde algunos son todos numéricos, mientras que otros valores pueden ser una mezcla de valores numéricos y no numéricos (sin caracteres especiales, solo letras AZ). Para extraer los datos en un conjunto de registros, estoy haciendo lo siguiente

Set oconn = New ADODB.connection oconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & excelFile & ";" & "Extended Properties=""Excel 8.0;HDR=YES;""" sTableName = "[sheet1$]" sTableName = "select * from " & sTableName Set oRs = New ADODB.Recordset oRs.Open sTableName, oconn, adOpenStatic, adLockOptimistic

Sin embargo, cuando estoy leyendo los valores del juego de registros, los valores numéricos aparecen en blanco en las columnas donde los datos están en un formato mixto. ¿Hay alguna manera de hacer que el conjunto de registros simplemente lea todos los valores como texto o una forma alternativa de leer el archivo de Excel para evitar este problema?


Si luego puede excluirlo, la manera más fácil de superar esto siempre es establecer las primeras ocho filas de sus datos en el tipo deseado. A pesar de la opción de especificar ''filas para escanear'' en ODBC, resulta que siempre escanea las primeras 8 filas. Si puede permitirse tener algunos datos ficticios en la parte superior (que luego se excluyen por pivote, etc.) ¡esto funciona bien! Puede ver la referencia de Microsoft aquí: https://support.microsoft.com/en-us/kb/141284