2012-07-31 10 views
6

¿Hemos cambiado recientemente nuestro servidor de base de datos SQL y me preguntaba si habría una secuencia de comandos o un método más fácil de actualizar todas las cadenas de conexión de archivos de Excel?Actualización masiva Cadena de conexión de archivo de Excel

Me habría sido mucho más fácil si se utiliza un archivo de conexión, pero por desgracia todo preparado manualmente y tenemos alrededor de 600 informes ...

Cualquier ayuda es muy apreciada.

Gracias

Nick

+1

Usted puede usar la colección 'Workbook.Connections' para recorrer todas las conexiones en un libro –

Respuesta

2

Sí se puede ... que hacer un programa en C# o vb.net que los bucles throu todos sus documentos 600 y abre los documentos y mediante el uso

oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule) 
    oModule.CodeModule.AddFromString(sCode) 

y dependiendo de su configuración en la variable sCode tiene una macro que recorra Excel.Connections o

For Each wks In ActiveWorkbook.Worksheets 
     For Each qt In wks.QueryTables 
     With qt 
      .Connection ="myconnstring" 
     End With 
     Next qt 
    Next wks 
0

Quería hacer exactamente lo mismo y encontré esta herramienta llamada XLODCTool de here.

Enlace de archivo here.

Allos a los que debe cambiar a granel los valores dentro de una cadena de conexión, p.

DSN De SERVERA a SERVERB

0

basado en la solución Archlight, la macro es la siguiente:

Sub UpdateConnectionsString_Click() 
    For Each wks In ActiveWorkbook.Worksheets 
     For Each qt In wks.QueryTables 
      With qt 
      'Debug.Print .Connection 
      .Connection = Replace(.Connection, "bla.com", "localhost") 
      End With 
     Next qt 
    Next wks 
End Sub 
Cuestiones relacionadas