Excel y los campos vacíos

17/01/2006 - 19:26 por María García | Informe spam
Hola a todos!!
Tengo una aplicación en C# que importa datos de archivos excel. El
problema es cuando en el archivo excel sólo se encuentra la estructura
de la tabla, ya que la consulta me está devolviendo 56 registros
vacíos. Al intentar recuperar los datos el programa revienta.
Sabe alguien como puedo controlar esto. Muchisimas gracias por
anticipado

Preguntas similare

Leer las respuestas

#1 KL
17/01/2006 - 23:08 | Informe spam
Hola María García,

Unas preguntas:
1) ?que es exactamente "estructura de la tabla"
2) ?que significa exactamente "el programa revienta"? ?Algun error especifico? ?Otras pistas?
3) ?Como importa tu aplicacion los datos de Excel exactamente?

Saludos,
KL


"María García" wrote in message news:
Hola a todos!!
Tengo una aplicación en C# que importa datos de archivos excel. El
problema es cuando en el archivo excel sólo se encuentra la estructura
de la tabla, ya que la consulta me está devolviendo 56 registros
vacíos. Al intentar recuperar los datos el programa revienta.
Sabe alguien como puedo controlar esto. Muchisimas gracias por
anticipado
Respuesta Responder a este mensaje
#2 María García
18/01/2006 - 09:32 | Informe spam
A ver, en la hoja excel estoy guardando tablas de una base de datos,
entonces en el fichero tengo los nombres de los campos de las tablas y
los datos que estas contienen. Si no hay datos, en el fichero sólo
están los nombres de los campos.
El programa saca un mensage de error porque espera encontrar un campo
con estructura de DATETIME y se encuentra con uno vacío, de hecho al
hacer la consulta me recupera 56 registros vacíos. Para importar los
datos utilizo una consulta sql SELECT * FROM el nombre de la hoja del
archivo excel. Se almacena en un DATASET.
Espero que pueda ayudarme alguien. Muchas gracias.
Salu2,
María
Respuesta Responder a este mensaje
#3 KL
18/01/2006 - 14:40 | Informe spam
Hola María García,

Sigo pensando que los detalles que facilitas son escasos. Creo que el problema no esta en Excel sino en una de dos:
1) algun fallo en la instruccion SQL que usas, por lo que seria conveniento ver la instruccion completa tal como es
2) algun fallo en tu codigo en C# lo cual estaria totalmente fuera de mi alcance. Lo unico que se me ocurre es a lo mejor tienes un
bucle en tu codigo que no incluye una istruccion de abortar la busqueda si se tropieza con una celda o fila vacia (yo que se)

En todo caso quizas el siguienete enlace te sea de ayuda:
http://erlandsendata.no/english/ind...t=envbadac

Saludos,
KL


"María García" wrote in message news:
A ver, en la hoja excel estoy guardando tablas de una base de datos,
entonces en el fichero tengo los nombres de los campos de las tablas y
los datos que estas contienen. Si no hay datos, en el fichero sólo
están los nombres de los campos.
El programa saca un mensage de error porque espera encontrar un campo
con estructura de DATETIME y se encuentra con uno vacío, de hecho al
hacer la consulta me recupera 56 registros vacíos. Para importar los
datos utilizo una consulta sql SELECT * FROM el nombre de la hoja del
archivo excel. Se almacena en un DATASET.
Espero que pueda ayudarme alguien. Muchas gracias.
Salu2,
María
Respuesta Responder a este mensaje
#4 María García
19/01/2006 - 09:43 | Informe spam
La sentencia sql es "SELECT * FROM [nais$]", la cual me consta que
está correcta al igual que el código C#, ya que si el archivo excel
tiene datos la aplicación funciona correctamente. El problema viene
cuando el fichero no contiene datos. Al ejecutar la sentencia sql
recupera 56 registros vacíos.
Es esta la información que preguntabas??
Gracias,
María
Respuesta Responder a este mensaje
#5 KL
19/01/2006 - 11:55 | Informe spam
Hola María García,

Abajo te pongo el codigo que uso desde VBA para conectar con un libro de Excel (version de Office - 2000 o posterior). He eliminado
todo el "error trapping" y funciona tanto si hay datos como si no. Igual encuentras alguna pista en este codigo.

Saludos,
KL

'--inicio codigo--
Sub ExtraerDatos()
Dim wb As String, strSQL As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

' establecemos las variables
wb = "E:\MY VBA\EXCEL NG\TestADO.xls"
strSQL = "SELECT * FROM [Sheet1$]"
Set cn = New ADODB.Connection

' establecemos la conexion
cn.Open "DRIVER={Microsoft Excel Driver (*.xls)};" & _
"DriverIdy0;ReadOnly=True;DBQ=" & wb & ";"

' abrimos el recordset
Set rs = New ADODB.Recordset
rs.Open strSQL, cn, adOpenForwardOnly, _
adLockReadOnly, adCmdText

' copiamos los datos
Range("A1").CopyFromRecordset rs

' cerramos el recordset y la conexion
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
'--inicio codigo--
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida