We have recently changed our SQL Database server and i was wondering if there would be a script or an easier method of updating all the Excel file connection strings?
It would of been alot easier if they used a connection file but unfortunately they were all set manually and we have about 600 reports…
Any help is much appreciated.
Yes you can… you make a program in c# or vb.net that loops throu all of your 600 documents and opens the documents and by using
oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule) oModule.CodeModule.AddFromString(sCode)
and depending on your setup in the sCode variable you have a macro that loops through Excel.Connections or
For Each wks In ActiveWorkbook.Worksheets For Each qt In wks.QueryTables With qt .Connection ="myconnstring" End With Next qt Next wks
I wanted to do the exact same thing and came accross this tool called
XLODCTool from here.
File link here.
Allos you to bulk change values inside of a connection string e.g.
Based on Archlight solution, the macro is the following :
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