Foros del Web » Programando para Internet » ASP Clásico »

Leer / desde excel a recordset

Estas en el tema de Leer / desde excel a recordset en el foro de ASP Clásico en Foros del Web. Hola, siempre suelo buscar bastante antes de postear alguna duda, la prueba es que este es mi primer post, pero para esta duda no encuentro ...
  #1 (permalink)  
Antiguo 03/05/2012, 05:19
hyo
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 11 años, 11 meses
Puntos: 0
Exclamación Leer / desde excel a recordset

Hola, siempre suelo buscar bastante antes de postear alguna duda, la prueba es que este es mi primer post, pero para esta duda no encuentro nada que me guíe.

Os cuento, leo perfectamente un excel y los guardo en un recorset, pero al mostrar por pantalla uno de los campos del recordset da error, es como si se quedara null ese campo. El campo en cuestion contiene una barra / , por ejemplo: 323/443 .

Siempre he leido los excel con este metodo y nunca he tenido problemas. ¿Como puedo leer los campos con / de un excel para meterlos en un recordset?
  #2 (permalink)  
Antiguo 06/05/2012, 14:49
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Leer / desde excel a recordset

No colocas el error y asi solo le queda a uno adivinar, supongo que el problema no es al leer el campo, sino al desplegarlo, y si es eso necesitarias imprimir como texto la salida de la lectura de ese campo para ver si te estropea la tabla o no se como lo quieras presentar en la pantalla.

Coloca el error y algo de código para que sea más fácil encontrar el fallo

Saludos
  #3 (permalink)  
Antiguo 07/05/2012, 04:54
hyo
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Leer / desde excel a recordset

Ok, muchas gracias por responder, escribo el fragmento del codigo relacionado con el error, comentar que el archivo excel lo subo con xelupload:

Código:
'Asigna a la variable Path, la ruta del archivo *.xls
PathEx=Server.MapPath(objFich.Nombre)

'Establece una conexión entre el servidor asp y una base de datos
Set ConexionEx = Server.CreateObject("ADODB.Connection")

'Abrimos el objeto con el driver específico para Microsoft Excel
'IMPORTANTE: Instalar en el servidor el Controlador de 2007 Office system: Componentes de conectividad de datos
ConexionEx.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & PathEx

'Crea un objeto de tipo recordset para retornar la consulta sql
Set rsEx = Server.CreateObject("ADODB.Recordset")

'Se abre el recordset, señalando como tabla el rango de celdas Excel
ssqlEx="Select * From [Hoja1$]"
rsEx.Open ssqlEx, ConexionEx,2,3
'Nos posicionamos al principio del recordset
rsEx.MoveFirst

dim aux
   
Do While Not rsEx.EOF  
    if ( not isNull(rsEx(0)) and not isNull(rsEx(8)) ) then       
		%><br><%
		aux=rsEX(1)

		response.write aux
		
                aux=replace(rsEx(1),"/","_")
       
    end if
    
    rsEx.MoveNext
Loop
Esto no lanza error, pero no me lee los campos que contienen / por ejemplo 323/223

A continuacion pongo lo que devuelve, los primeros si los hace bien por que no contienen / pero al encontrarse con la primera / ya no hace bien ninguno, aunque no tenga la /
Cita:
90
90
90
90
93
93
31
0
0
0
0
0
0
0
0
0
0
0
0
0
Ahora si cambio esta linea rsEx.Open ssqlEx, ConexionEx,2,3 por esta otra rsEx.Open ssqlEx, ConexionEx,3,3 , me devuelve el siguiente error:

Cita:
90
90
90
90
93
93
31

Error de Microsoft VBScript en tiempo de ejecución error '800a005e'

Uso no válido de Null: 'replace'

/rec.asp, línea 37
Con otros archivos excel que no contienen / funciona perfectamente.
¿Hay otra forma de leer el excel que me acepte las / ?
¿Puede ser que el xelupload no suba correctamente el excel cuando contiene / ?
¿Puede que sea algun tema de configuracion de excel o servidor?

Etiquetas: excel, recordset, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:45.