problema con una consulta de excel

06/06/2007 - 17:51 por Esteban Franco | Informe spam
ustedes me arian el favor de decirmen si esta sentencia esta bien o no

es que la ejecuto y no me funciona

es que necesito traer informacion de varios libros y ya tengo el
codigo y este no me da

gracias

'Creamos la cedena texto de la consulta SQL
NOMHOJA = Left(Tmp, Len(Tmp) - 1) ' Este es una variable para el
nombre de la hoja

esta variable equivale ha esto IMP # 25 COMERTEX S#A# # 2

strSQL = "SELECT * FROM [IMP # 25 COMERTEX S#A# # 2]'!$k2:k100"
 

Leer las respuestas

#1 Héctor Miguel
07/06/2007 - 02:48 | Informe spam
hola, Esteban !

... esta sentencia esta bien o no... es que la ejecuto y no me funciona
... necesito traer informacion de varios libros y ya tengo el codigo y este no me da
'Creamos la cedena texto de la consulta SQL
NOMHOJA = Left(Tmp, Len(Tmp) - 1) ' Este es una variable para el nombre de la hoja
esta variable equivale ha esto IMP # 25 COMERTEX S#A# # 2
strSQL = "SELECT * FROM [IMP # 25 COMERTEX S#A# # 2]'!$k2:k100"



1) [de seguro] cuando 'obtuviste' el nombre de la hoja de tu libro cerrado: -> IMP # 25 COMERTEX S#A# # 2
el nombre *real* de la hoja es algo +/- como lo siguiente IMP # 25 COMERTEX S.A. # 2
-> [es decir]... cuando rescatas nombres de 'tablas' [por ADO] desde libros cerrados...
-> si dentro del nombre existen PUNTOS, estos son sustituidos por el signo de libra/numero/gato/... -> #
-> [o sea que]... si el nombre que rescatas contiene #... [pudiera ser *realmente* dicho caracter #... o algun PUNTO] -???-

2) en cuanto a la forma de establecer la cadena de consulta [ADO/SQL/ODBC/...] para tu variable strSQL...
-> strSQL = "SELECT * FROM [IMP # 25 COMERTEX S#A# # 2]'!$k2:k100"
a) [hasta donde se] el uso de corchetes [...] es *valido* SOLO cuando no existen espacios en la referencia que contienen
b) tienes un apostrofo *de cierre*.. pero no existe un *de apertura*
c) el caso del signo ! es similar a los dos anteriores
-> PERO... cuando las referencias [directas o a traves de variables] contienen espacios... [las reglas cambian] ejemplos:
a) un nombre definido 'a nivel de hoja' p.e.: -> select * from [hoja1$!nombre_definido]
b) *toda* 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']
-> si existira la posibilidad de nombres con espacios [o solo numeros]... prueba con algo +/- como lo siguiente:
a) strSQL = "SELECT * from `" & NOMHOJA & "$k2:k100`"
b) strSQL = "SELECT * from `" & NOMHOJA & "$" & RangoDeDatos & "`"

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares