cadena de conexion

28/02/2007 - 17:34 por spuser | Informe spam
Buenas, en un informe de tabla dinamica se hace referencia a un origen de
datos (por ejemplo balance.dbf) en c:\data, el problema se suscita al llevar
dicho informe en una memoria usb a otra pc que no tiene dicha ruta. ¿Como le
indico a la tabla que mi origen de datos se encuentra en la misma ruta en
donde se encuentre el archivo excel (2007)?

Gracias anticipadas por su ayuda. Saludos.

Carlos

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/03/2007 - 01:13 | Informe spam
hola, ???

... en un informe de tabla dinamica se hace referencia a un origen de datos (por ejemplo balance.dbf) en c:\data
el problema se suscita al llevar dicho informe en una memoria usb a otra pc que no tiene dicha ruta.
Como le indico a la tabla que mi origen de datos se encuentra en la misma ruta en donde se encuentre el archivo excel (2007)?



[en tanto averiguamos que novedades nos trae el 2007...]
una alternativa es modificar la ruta al archivo de origen por macros... o... [un 'truquillo' +/- como el siguiente]...
-> sI se trata de -solo- una tabla de consulta [o por cada una sin 'escribir' macros]... prueba a hacer lo siguiente:
a) activa/selecciona/... la hoja donde esta ubicada la tabla 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.querytables(1).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.querytables(1).connection = "pon aqui la cadena EDITADA y delimitada por comillas dobles"
-> pulsa {enter} -> regresa a excel -> hazle un 'refresco' a la consulta y...

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 spuser
01/03/2007 - 16:01 | Informe spam
gracias Hector por tu ayuda

Te comento que excel me pregunta si quiero conectarme a f:\data\balance.dbf
en vez de c:\data\balance (al no encontrarlo), cuando voy a conexiones de la
tabla y sigue referenciando al archivo de conexion en c:\data\balance.dbf
pero la cadena de conexion si ha sido modificada a f:\data\ (en vez de
c:\data\). La idea es evitar un mensaje como el anterior y hacer la conexion
mas transparente.

Voy a probar lo que me dices y te comento.

Saludos,

Carlos

"Héctor Miguel" escribió en el mensaje
news:
hola, ???

... en un informe de tabla dinamica se hace referencia a un origen de
datos (por ejemplo balance.dbf) en c:\data
el problema se suscita al llevar dicho informe en una memoria usb a otra
pc que no tiene dicha ruta.
Como le indico a la tabla que mi origen de datos se encuentra en la misma
ruta en donde se encuentre el archivo excel (2007)?



[en tanto averiguamos que novedades nos trae el 2007...]
una alternativa es modificar la ruta al archivo de origen por macros...
o... [un 'truquillo' +/- como el siguiente]...
-> sI se trata de -solo- una tabla de consulta [o por cada una sin
'escribir' macros]... prueba a hacer lo siguiente:
a) activa/selecciona/... la hoja donde esta ubicada la tabla 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.querytables(1).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.querytables(1).connection = "pon aqui la cadena EDITADA
y delimitada por comillas dobles"
-> pulsa {enter} -> regresa a excel -> hazle un 'refresco' a
la consulta y...

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

Respuesta Responder a este mensaje
#3 spuser
05/03/2007 - 15:31 | Informe spam
Hola Hector

Hice las pruebas pero en el editor de vb pongo la linea tal cual y me sale
el siguiente error:

Se ha producido el error '9' en tiempo de ejecucion: Subindice fuera del
intervalo

Probe ponerle valor 0 y luego ninguno pero no se arregla. Te agradeceria lo
revisaras, mientras sigo empleando la sugerencia del cambio de origen del
mismo excel.

Carlos

"Héctor Miguel" escribió en el mensaje
news:
hola, ???

... en un informe de tabla dinamica se hace referencia a un origen de
datos (por ejemplo balance.dbf) en c:\data
el problema se suscita al llevar dicho informe en una memoria usb a otra
pc que no tiene dicha ruta.
Como le indico a la tabla que mi origen de datos se encuentra en la misma
ruta en donde se encuentre el archivo excel (2007)?



[en tanto averiguamos que novedades nos trae el 2007...]
una alternativa es modificar la ruta al archivo de origen por macros...
o... [un 'truquillo' +/- como el siguiente]...
-> sI se trata de -solo- una tabla de consulta [o por cada una sin
'escribir' macros]... prueba a hacer lo siguiente:
a) activa/selecciona/... la hoja donde esta ubicada la tabla 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.querytables(1).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.querytables(1).connection = "pon aqui la cadena EDITADA
y delimitada por comillas dobles"
-> pulsa {enter} -> regresa a excel -> hazle un 'refresco' a
la consulta y...

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

Respuesta Responder a este mensaje
#4 spuser
05/03/2007 - 16:24 | Informe spam
Hector, revise un post tuyo anterior y encontre la funcion adecuada para mi
tabla dinamica:

?activesheet.pivottables(1).pivotcache.connection

me devuelve la cadena, modifico la ruta y pongo la siguiente linea en
Workbook_Open():
ActiveSheet.PivotTables(1).PivotCache.Connection =
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data
Source=F:\INF\;Mode=Share Deny Write;Extended Properties="";Jet OLEDB:System
database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type;Jet
OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet
OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet
OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet
OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica
Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"

Me arroja el error "argumento no valido" (asi a secas), luego viene su
sugerencia de conectarme a f:\inf\balance.dbf. Algo estoy poniendo mal en la
cadena? en que evento debo colocar la linea? finalmente, colocar un "hard
code" imposibilitaria el funcionamiento en caso el sistema operativo asigne
otra letra a mi unidad usb (no necesariamente F), imagino que sera una macro
mas compleja (leer unidades de disco extraible), alguna pista?.

Gracias por tu paciencia,

Carlos


"spuser" escribió en el mensaje
news:%
Hola Hector

Hice las pruebas pero en el editor de vb pongo la linea tal cual y me sale
el siguiente error:

Se ha producido el error '9' en tiempo de ejecucion: Subindice fuera del
intervalo

Probe ponerle valor 0 y luego ninguno pero no se arregla. Te agradeceria
lo revisaras, mientras sigo empleando la sugerencia del cambio de origen
del mismo excel.

Carlos

"Héctor Miguel" escribió en el mensaje
news:
hola, ???

... en un informe de tabla dinamica se hace referencia a un origen de
datos (por ejemplo balance.dbf) en c:\data
el problema se suscita al llevar dicho informe en una memoria usb a otra
pc que no tiene dicha ruta.
Como le indico a la tabla que mi origen de datos se encuentra en la
misma ruta en donde se encuentre el archivo excel (2007)?



[en tanto averiguamos que novedades nos trae el 2007...]
una alternativa es modificar la ruta al archivo de origen por macros...
o... [un 'truquillo' +/- como el siguiente]...
-> sI se trata de -solo- una tabla de consulta [o por cada una sin
'escribir' macros]... prueba a hacer lo siguiente:
a) activa/selecciona/... la hoja donde esta ubicada la tabla 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.querytables(1).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.querytables(1).connection = "pon aqui la cadena
EDITADA y delimitada por comillas dobles"
-> pulsa {enter} -> regresa a excel -> hazle un 'refresco' a
la consulta y...

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





Respuesta Responder a este mensaje
#5 Héctor Miguel
05/03/2007 - 19:52 | Informe spam
hola, Carlos !

en la cadena de conexion que vas a dejar como 'buena' existen algunos 'textos vacios' [representadas por las comillas dobles]
como: Extended Properties=""... System database=""... Registry Path=""... New Database Password=""

toma en cuenta que 'representar' comillas dobles dentro de cadenas de texto en vba requiere [en ocasiones de]
-> algunos 'juegos' de 'dobles comillas dobles'... a veces 'triples'... y hasta 'cuadruples' [p.e.]
Extended Properties="""""" o... Extended Properties='""' [esta ultima delimtada por apostrofos '] o... ???

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

__ la consulta original __
... encontre la funcion adecuada para mi tabla dinamica:
?activesheet.pivottables(1).pivotcache.connection
me devuelve la cadena, modifico la ruta y pongo la siguiente linea en Workbook_Open():
ActiveSheet.PivotTables(1).PivotCache.Connection = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=F:\INF\;Mode=Share Deny Write;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type;Jet OLEDB:Database Locking Mode=0;Jet
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet
OLEDB:Support Complex Data=False"

Me arroja el error "argumento no valido" (asi a secas), luego viene su sugerencia de conectarme a f:\inf\balance.dbf.
Algo estoy poniendo mal en la cadena? en que evento debo colocar la linea? finalmente, colocar un "hard code"
imposibilitaria el funcionamiento en caso el sistema operativo asigne otra letra a mi unidad usb (no necesariamente F)
imagino que sera una macro mas compleja (leer unidades de disco extraible), alguna pista?.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida