ODBC Dentro de EXCEL

Holass!
Estamos migrando todo el soft que tenemos a un nuevo hardware. Este nuevo hardware usa como sistema Operativo Windows 2000 y SQL como motor de datos.
Los usuarios tienen planillas que apuntan a los datos del SQL.
Al abrir las planillas e intentar recuperar los datos, se encuentran con que no los baja ya que, Excel, guarda en forma interna el string de conexión, y como los nombres del servidor y del server de SQL han cambiado, no los encuentra.
Mi pregunta es:
¿Cómo cambio el string de conexión de las planillas de Excel sin perder las elaboradas consultas de los usuarios?
Son muchas las planillas a actualizar, ¿qué me aconsejan?

1 Respuesta

Respuesta
Supongo que usaste la herramienta de Excel Recuperar datos externos para crear tus consultas, este asistente usa internamente Microsoft Query, cuando abres un archivo de Excel el cual tiene consultas y estas no las encuentra, como sabes, te avisa, pero te deja abrir de todos modos el archivo aunque no puedas recuperar los datos, después te aparece la barra de herramientas Datos Externos, al darle click en el botón Modificar consulta, te avisa que no se puede y al presionar Aceptar te abre el Microsoft Query y te repite la causa de por que no pudo abrir el origen de los datos, en este punto ya estas dentro del entorno del Query, que como sabes, es muy parecido a Access, en el menu Ver hay una opción que dice SQL entra ahí y anota o copia lo que te aparece, que sera la consulta que estas haciendo, OJO solo sera la instrucción SQL para recuperar los datos, ahí veras la ruta de localización de los datos si esta mal modifícala y guarda esta información, esta es la importante, pues puede ser tan sencilla o compleja como la hayas hecho la primera vez, después ve al menu Archivo y selecciona la opción Definición de Tabla, esta opción es muy parecida al asistente que se usa desde Excel (de hecho es el mismo) te aparecerán todos los orígenes de datos (ODBC) que tengas en tu maquina, aquí puedes crear la nueva conexión, y aunque sea nueva, recuerda que previamente ya guardaste tu consulta, entonces solo te resta aplicarle esta sentencia SQL, ojala te sirva esta información...
No me refiero al query sino a la conexión, es decir, modificar la consulta es fácil lo que necesito es avisarle al excel cual es el origende datos, es decir. Antes la consulta la hacia del server1, usuario pepe clave pepe ahora la debe hacer desde el servernuevo, usuario roberto clave roberto.
Lo que tengo que modificar es el string de conexión. La consulta en si va a la misma base de datos, solo que el servidor de base de datos y el usuario se llaman diferente.
¿Me comprendes?
Si, si "comprendo", pero creo que no me "explique" bien, reitero...
Después ve al menu Archivo y selecciona la opción Definición de Tabla, esta opción es muy parecida al asistente que se usa desde Excel (de hecho es el mismo) te aparecerán todos los orígenes de datos (ODBC) que tengas en tu maquina, aquí puedes crear la nueva conexión, y aunque sea nueva, recuerda que previamente ya guardaste tu consulta, entonces solo te resta aplicarle esta sentencia SQL...
Es decir, creas una nueva conexión y le aplicas la consulta existente...
Otra opción es crear las consultas con código, como ya tienes las consultas solo hay que agregarlas a la cadena de conexión, el siguiente ejemplo es contra una base de datos de Access, como no cuento con SQL no pude hacer pruebas con ese motor, pero en la ayuda viene un ejemplo con SQL Server...
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=D:\1Usuarios\Mau\Datos.mdb;DefaultDir=D:\1Usuarios\Mau;DriverId=28" _
), Array("1;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Range("A1"))
.CommandText = Array( _
"SELECT CLIENTES.DESCTE, CLIENTES.EDAD" & Chr(13) & "" & Chr(10) & "FROM `D:\1Usuarios\Mau\Datos`.CLIENTES CLIENTES" _
)
.Name = "Consulta desde MS Access Database"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas