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
 

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.

Preguntas similares