8
votes

String de connexion de fichier Excel Mettre à jour de masse

Nous avons récemment changé notre serveur de base de données SQL et je me demandais s'il y aurait un script ou une méthode plus facile de mise à jour de toutes les chaînes de connexion de fichier Excel?

Il faudrait beaucoup plus facile s'il utilisait un fichier de connexion, mais malheureusement, ils étaient tous définis manuellement et que nous avons environ 600 rapports ...

Toute aide est très appréciée.

merci

Nick


1 commentaires

Vous pouvez utiliser la collection workbook.Connections pour boucler toutes les connexions dans un classeur


3 Réponses :


2
votes

Oui, vous pouvez ... vous faites un programme en C # ou VB.NET qui se bouclait tous vos 600 documents et ouvre les documents et en utilisant

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


0 commentaires

2
votes

Je voulais faire exactement la même chose et est venu accrocher cet outil appelé xloCtool de ici .

lien de fichier ici .

Allos Vous pour modifier les valeurs de changement en vrac à l'intérieur d'une chaîne de connexion E.g.

DSN à partir de servera à serveurb


1 commentaires

C'est la meilleure réponse donnée car il n'implique aucun code VBA personnalisé et peut être facilement et rapidement exécuté à partir d'utilité autonome!



0
votes

Basé sur la solution d'Archlight, la macro est la suivante:

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


0 commentaires