Modifier excel existant Nom de la Connexion dans VBA
J'ai besoin de mettre à jour le Nom de la Connexion d'un classeur excel de connexion sql. C'est ma tentative. J'ai été en mesure de modifier la Chaîne de Connexion et de Commande de Texte en faisant un standard remplacer.
Sub ConnectionString_modify()
Dim i As Long
Dim cnt As Long
Dim modtext As String
Dim modrange As String
'Grab nummber of workbook connections
cnt = ActiveWorkbook.Connections.Count
For i = 1 To cnt
'Changes to Connection string --This works
modtext = ActiveWorkbook.Connections.Item(i).OLEDBConnection.Connection
modtext = VBA.Replace(modtext, "_FY2013", "_FY2014")
ActiveWorkbook.Connections.Item(i).OLEDBConnection.Connection = modtext
'Changes Connection Name
modname = ActiveWorkbook.Connections.Item(i).Name
modname = VBA.Replace(modname, "_FY2013", "_FY2014")
ActiveWorkbook.Connections.Item(i).Name = modname
Next i
End sub
Toute aide serait super. Merci.
Quel est le problème exactement? Ne vous obtenez une erreur? Si Oui, sur quelle ligne et quel est le message exact?
Ce code sera exécuté sans erreur, mais le nom de la chaîne de connexion ne change pas. Ce qui ne semble pas arriver, c'est que le i-ème nom de la connexion des modifications à un autre dans le jeu. Donc, si je vérifier avant de connexions.les éléments(i) = Connection10 après j'essaie de mon renommer le code de ses connexions.les éléments(i) = Connection7. Il semblerait que j'ai besoin d'une autre méthode pour renommer. Actuellement, ce code juste réorganise la Connexion noms.
Essayez de mettre de la connexion des objets dans une collection et une boucle dans la collection de la place. Parfois, la modification des objets dans une boucle comme vous êtes en train de faire peut causer des objets de commander à nouveau au cours du processus. Ou essayez de définir une référence à chaque connexion et travailler avec cette référence au lieu de se référer .Les éléments(i)
Ce code sera exécuté sans erreur, mais le nom de la chaîne de connexion ne change pas. Ce qui ne semble pas arriver, c'est que le i-ème nom de la connexion des modifications à un autre dans le jeu. Donc, si je vérifier avant de connexions.les éléments(i) = Connection10 après j'essaie de mon renommer le code de ses connexions.les éléments(i) = Connection7. Il semblerait que j'ai besoin d'une autre méthode pour renommer. Actuellement, ce code juste réorganise la Connexion noms.
Essayez de mettre de la connexion des objets dans une collection et une boucle dans la collection de la place. Parfois, la modification des objets dans une boucle comme vous êtes en train de faire peut causer des objets de commander à nouveau au cours du processus. Ou essayez de définir une référence à chaque connexion et travailler avec cette référence au lieu de se référer .Les éléments(i)
OriginalL'auteur thomas398 | 2013-09-16
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
OriginalL'auteur Tim Williams
Apparemment, Excel dynamicly sortes de la Connexion.Élément de la() tableau. Donc mes modifications ont été l'envoi de la mise à jour des Noms au bas du tableau.
Avant: FY2013Conn1, FY2013Conn2, FY2013Conn3, FY2013Conn4
Après: FY2014Conn2, FY2014Conn3, FY2014Conn4, FY2014Conn1
C'était difficile à voir parce que j'avais affaire à 50+ connexions. Ce que j'ai trouvé pour être efficace au lieu d'essayer de parcourir l'ensemble, seulement modifier le premier élément dans le tableau.
Merci pour l'aide de tous.
OriginalL'auteur thomas398