Cambio driver ODBC en Excel

20/04/2006 - 19:10 por Bernat | Informe spam
¿ Alguien sabe cómo cambiar el origen y driver de una tabla dinámica, sin
cambiar la consulta ?
El problema es que tengo varias tablas dinamicas que apuntan a un origen de
datos C/ODBC (BD Navision) y ahora quiero redireigir las consultas hacia un
SQL Server utilizando el driver de ODBC.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/04/2006 - 06:52 | Informe spam
hola, Bernat !

... como cambiar el origen y driver de una tabla dinamica, sin cambiar la consulta ?
... tengo varias tablas... que apuntan a un origen de datos C/ODBC (BD Navision)
... ahora quiero redireigir las consultas hacia un SQL Server utilizando el driver de ODBC.



si ya conoces [+/- exactamente] la cadena de conexion al nuevo origen de datos [y los cambios de proveedor]...

1) suponiendo que la conexion la realizaste desde [menu] datos / obtener datos externos / cear/modificar consulta...
-> puedes 'consultar/modificar/...' la 'sentencia' de la consulta [sql] desde el mismo menu de datos [o la BH de datos externos]
-> solicita modificar la consulta
-> 'avanza' hasta el ultimo paso [finalizar]
-> en lugar de 'devolver' los datos a excel... selecciona ->ver datos o modificar consulta en MS Query<-
-> elige: [menu] ver / sql... [o de la BH el icono de SQL]
-> ahi 'te dira' de donde esta tomando los datos [driver/proveedor, ruta, archivo, datos/tablas/... etc. etc. etc.]

2) la otra alternativa es modificar la ruta al archivo de origen por macros... o... [un 'truquillo' +/- como el siguiente]...
-> sI se trata de -solo- una tabla dinamica [o por cada una sin 'escribir' macros]... prueba a hacer lo siguiente:
a) activa/selecciona/... la hoja donde esta ubicada la tabla dinamica y 've' al editor de vba -> atajo = {Alt}+{F11}
b) [ya en el editor de vba] -> presenta la ventana de inmediato [menu] ver / ventana inmediato [o el atajo {Ctrl}+G]
c) [en la ventana de inmediato] -> ejecuta la siguiente instruccion...
? activesheet.pivottables(1).pivotcache.connection [y pulsa {enter}]
->'nota' el signo de cierre de interrogacion inicial<-
-> te devolvera en la siguiente linea la cadena con la conexion al origen de datos ;)
d) usa/aprovecha/... la linea anterior y... EDITA las partes que sean 'necesarias' [driver/proveedor, archivo, tabla... etc.]
e) una vez EDITADA/corregida/actualizada/... la cadena de conexion... -> ejecuta una nueva instruccion [casi 'la misma']...
activesheet.pivottables(1).pivotcache.connection = "pon aqui la cadena EDITADA y delimitada por comillas dobles"
-> pulsa {enter} -> regresa a excel -> hazle un 'refresco' a la tabla dinamica y...

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Bernat
21/04/2006 - 11:36 | Informe spam
Perfecto, muchas gracias. La solución que mjeor se adaotaba al problema era
la opción dos.

"Héctor Miguel" wrote:

hola, Bernat !

> ... como cambiar el origen y driver de una tabla dinamica, sin cambiar la consulta ?
> ... tengo varias tablas... que apuntan a un origen de datos C/ODBC (BD Navision)
> ... ahora quiero redireigir las consultas hacia un SQL Server utilizando el driver de ODBC.

si ya conoces [+/- exactamente] la cadena de conexion al nuevo origen de datos [y los cambios de proveedor]...

1) suponiendo que la conexion la realizaste desde [menu] datos / obtener datos externos / cear/modificar consulta...
-> puedes 'consultar/modificar/...' la 'sentencia' de la consulta [sql] desde el mismo menu de datos [o la BH de datos externos]
-> solicita modificar la consulta
-> 'avanza' hasta el ultimo paso [finalizar]
-> en lugar de 'devolver' los datos a excel... selecciona ->ver datos o modificar consulta en MS Query<-
-> elige: [menu] ver / sql... [o de la BH el icono de SQL]
-> ahi 'te dira' de donde esta tomando los datos [driver/proveedor, ruta, archivo, datos/tablas/... etc. etc. etc.]

2) la otra alternativa es modificar la ruta al archivo de origen por macros... o... [un 'truquillo' +/- como el siguiente]...
-> sI se trata de -solo- una tabla dinamica [o por cada una sin 'escribir' macros]... prueba a hacer lo siguiente:
a) activa/selecciona/... la hoja donde esta ubicada la tabla dinamica y 've' al editor de vba -> atajo = {Alt}+{F11}
b) [ya en el editor de vba] -> presenta la ventana de inmediato [menu] ver / ventana inmediato [o el atajo {Ctrl}+G]
c) [en la ventana de inmediato] -> ejecuta la siguiente instruccion...
? activesheet.pivottables(1).pivotcache.connection [y pulsa {enter}]
->'nota' el signo de cierre de interrogacion inicial<-
-> te devolvera en la siguiente linea la cadena con la conexion al origen de datos ;)
d) usa/aprovecha/... la linea anterior y... EDITA las partes que sean 'necesarias' [driver/proveedor, archivo, tabla... etc.]
e) una vez EDITADA/corregida/actualizada/... la cadena de conexion... -> ejecuta una nueva instruccion [casi 'la misma']...
activesheet.pivottables(1).pivotcache.connection = "pon aqui la cadena EDITADA y delimitada por comillas dobles"
-> pulsa {enter} -> regresa a excel -> hazle un 'refresco' a la tabla dinamica y...

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



Respuesta Responder a este mensaje
#3 Bernat
21/04/2006 - 14:39 | Informe spam
Y ya que estamos, para ver y modificar la consulta sin tener que ir al
asintente hay alguna fómula como la anterior ?
Respuesta Responder a este mensaje
#4 Héctor Miguel
21/04/2006 - 19:50 | Informe spam
hola, Bernat !

Y ya que estamos, para ver y modificar la consulta sin tener que ir al asistente hay alguna fomula como la anterior ?



puedes 'parametrizar' las consultas externas en excel a traves de ms-query, usando -nuevamente- el asistente si...
una vez que termines con el asistente para finalizar la consulta a la base de datos... si deseas agregar parametros variables...
1) puedes consultar/modificar/... la sentencia de la consulta [sql] desde el mismo menu de datos [o la BH de datos externos]
-> solicita modificar la consulta
-> avanza hasta el ultimo paso [finalizar]
-> en lugar de devolver los datos a excel... selecciona ->ver datos o modificar consulta en MS Query<-
-> elige: [menu] ver / sql... [o de la BH el icono de SQL]
2) una vez que decidas que partes de la consulta deseas convertir en parametros...
-> sustituye la/s fraccion/es apropiada/s de la sentencia por un signo ? [opcionalmente pudes darles un identificador CORTO]
[lo anterior ocasiona que ANTES de refrescar una consulta, MS-Query te pregunta por el -nuevo- valor del parametro]
-> termina la modificacion y devueve los datos a excel [tendras que responder una cuantas preguntas a los parametros] :))
3) posteriormente, puedes sustituir la/s pregunta/s de MS-Query por los valores que pueda tomar de celdas en tu hoja...
-> vuelve a ejecutar [menu] datos / obtener datos externos / parametros... [o desde la BH de datos externos]
-> selecciona [por cada parametro] la opcion de: tomar el valor de la siguiente celda:
-> y [obviamente] selecciona la celda apropiada para cada parametro
4) segun la parte de la sentencia sql que hayas parametrizado... debera haber una celda son la sintaxis EXACTA del parametro -?-

si deseas consultar sitios con informacion al respecto... visita:
-> Andy Wiggins: http://www.bygsoftware.com/Excel/sql.htm
-> Ole P. Erlandsen: http://www.erlandsendata.no/english...connstring
-> Carl Prothman: http://www.carlprothman.net/Default.aspx?tabid‡#OLEDBProviderForSQL...
-> Dick Kusleika: http://www.carlprothman.net/Default.aspx?tabid‡#OLEDBProviderForSQLServer

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida