Home » excel » sql – Mass update Excel file connection string

sql – Mass update Excel file connection string

Posted by: admin March 7, 2020 Leave a comment

Questions:

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.

Thanks

Nick

How to&Answers:

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

Answer:

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.

DSN From SERVERA to SERVERB

Answer:

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