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