> Tengo creados unos cubos Olap con excel 2003
> y necesito cambiar la ubicacion de la Base de Datos sin cambiar la definicion de los cubos.
> es esto posible?
si suponemos que los cubos olap los utilizas para realizar consultas devueltas en hojas de calculo o tablas dinamicas o ... ???
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 [ruta, archivo, hoja y datos/tablas/...]
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 donde se direcciona la ubicacion del archivo...
-> DBQ=... y DefaultDir=...
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.
"cubos olap" escribió:
Héctor Miguel no lo hubiera podido hacer sin tu ayuda. Hice la siguiente
macro, la hice en office 2003 y me funcionó muy bien.
Solo tendrias que cambiar el string de conexión como lo indico Héctor, el
próposito de la macro es, si tienes muchas hojas de cálculo y tienes que
arreglarlas todas, la macro lo hace por ti, primero recorre todas las hojas y
luego todas las tablas dinámicas y cambia el nombre de la fuente, ahi les
dejo el ejemplo y espero les sea de mucha ayuda.
Salu2
Sub cambiarOrigen()
Dim numSheet As Integer
Dim numPivots As Integer
Dim i As Integer
Dim j As Integer
numHojas = Workbooks.Application.Sheets.Count
i = 1
j = 0
For i = 1 To numHojas Step 1
Sheets(i).Select
numPivots = ActiveSheet.PivotTables.Count
For j = 1 To numPivots Step 1
ActiveSheet.PivotTables(j).PivotCache.Connection =
"OLEDB;Provider=MSOLAP.2;Persist Security Info=True;Data
Source=10.1.1.75;Initial Catalog=sigDW;Client Cache Size=25;Auto Synch
Period=10000"
Next j
Next i
End Sub
"Héctor Miguel" escribió: