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? p>
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 ... P>
Toute aide est très appréciée. P>
merci p>
Nick P>
3 Réponses :
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
Je voulais faire exactement la même chose et est venu accrocher cet outil appelé lien de fichier ici . p>
Allos Vous pour modifier les valeurs de changement en vrac à l'intérieur d'une chaîne de connexion E.g. p>
xloCtool code> de ici . P>
DSN code> à partir de
servera code> à
serveurb code> p>
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!
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
Vous pouvez utiliser la collection
workbook.Connections code> pour boucler toutes les connexions dans un classeur