Especificar las hojas como tablas

17/01/2007 - 15:59 por Lucy | Informe spam
Buen dia

Necesito generar una serie de reportes con el contenido de unas hojas
de excel. Ya he definido el ODBC correspondiente a la hoja de excel,
el problema radica en que me muestra todas las hojas de excel como
tablas de sistemas y desde donde voy a construir el reporte no me
permite seleccionarlas como tablas de sistema.

La pregunta puntual es como le defino un alias a cada hoja para que sea
vista como una tabla pero no de sistema.

Muchas gracias

Lucy

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/01/2007 - 04:26 | Informe spam
hola, Lucy !

Necesito generar una serie de reportes con el contenido de unas hojasde excel.
Ya he definido el ODBC correspondiente a la hoja de excel,
el problema radica en que me muestra todas las hojas de excel como tablas de sistemas
y desde donde voy a construir el reporte no mepermite seleccionarlas como tablas de sistema.
La pregunta puntual es como le defino un alias a cada hoja para que seavista como una tabla pero no de sistema.



1) comentarte que existen -al menos- 3 'definiciones' para una tabla 'de sistema' [en lo tocante a hojas de excel:
a) un nombre definido 'a nivel de hoja' p.e.: -> select * from [hoja1$!nombre_definido]
b) una hoja de calculo p.e.: -> select * from [hoja1$]
c) un rango en una hoja de calculo, que puede ser inclusive con o sin el nombre de la hoja [p.e.]
c.1) select * from [hoja1$!a1:b4]
c.2) select * from [a1:b4] [aqui se 'entiende' que se usara la hoja(1) aun si no esta 'visible']

2) al igual que solo hay una forma de 'entender' una tabla [NO 'de sistema'] en consultas odbc a hojas de excel:
-> un nombre definido 'a nivel de libro' [es decir, que no se encuentra 'duplicado/repetido/asignado/... a rangos de hojas varias]
OJO [y solo por si las dudas]... no podra ser un nombre que haga referencias a rangos 'dinamicos' [o de/crecientes] :-((

3) [adicional, y tambien por si fuera de utilidad] los[como proveedores ole db no distinguen las 'de sistema' de las 'normales' ;)

4) [extra]: si suponemos que tus datos a consultar se inician -precisamente- desde la celda 'A1' -?-
prueba consultando +/- con alguna de las siguientes formas:
a) select * from [hoja1$] -> lo cual -por omision- utiliza el 'rango usado' de la hoja de calculo
b) select * from [hoja1$!a:d] -> similar al punto anterior
-> ambas formas podrian 'simular' el uso de rangos 'dinamicos' [o de/crecientes] ;)

5) [finalmente]: para mostrar las tablas 'de sistema' a traves de ms-query:
-> pulsa el boton de opciones y pon una marca en 'tablas de sistema'
o... modifica la siguiente llave en el registro de windows [OJO con las modificaciones en el registro]:
-> HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Query\Table Options\systables = 1
-> o revisa la informacion del siguiente articulo:
BUG: Incorrect TABLE_TYPE Is Returned for Excel Worksheets
http://support.microsoft.com/defaul...-us;300948
-> y luego revisa la siguiente conversacion: -> http://tinyurl.com/2eok2z

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Lucy
18/01/2007 - 16:14 | Informe spam
Hector Miguel

Muchas gracias por tu explicacion, me fue muy util y me dio luces sobre
como actuar, lo que hize fue lo siguietne en aras de que alguien mas
tenga esta duda en un futuro

Necesitaba generar un reporte en InfoMaker de unos datos de un libro de
excel que contiene 10 hojas, asi que lo que hize fue la siguiente

En el menu Insertar -> Nombre -> Definir-> Agregar defini el rango de
las columnas de los datos que necesito que me liste =Hoja1!$A:$S; lo
que significa que los datos estan en la hoja 1 y en las columnas de la
A a la S y lo nombro como hoja1_xls.

Luego en el infomaker despues de realizar la conexion ODBC me muestra
como una tabla hoja1_xls y como columnas los titulos de las columnas.

Muchas gracias

Lucy
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida