Suppression de la boîte de dialog properties du lien de données dans Excel à l'aide de VBA

Dans le cas des classurs rafraîchissants avec des pivots (liés extérieurement à un autre file Excel contenant datatables) en utilisant VBA (.RefreshAll), une boîte de dialog intitulée "properties du lien de données" s'affiche.

J'ai essayé de supprimer la boîte de dialog avec les retards de DoEvents, Application.ScreenUpdating = False, Application.DisplayAlerts = False, OLEDB.BackgroundQuery = False. Mais rien ne semble fonctionner.

Pour rendre les choses plus confuses, la boîte de dialog ne s'affiche pas régulièrement. Parfois, il le fait, parfois ce n'est pas le cas.

Mes tentatives de debugging ont conduit à une seule théorie: elle peut être causée par la taille du file de données et, par conséquent, la memory que Excel prend dans la RAM. Le dialog ne semble pas apparaître lorsque ces deux éléments sont petits. Lorsque le file approche plus de 10mb, la boîte de dialog devient plus fréquente. Je pense donc que cela a quelque chose à voir avec la memory, bien qu'il y ait au less 1 Go de memory disponible. Cela n'a aucun sens, mais je n'ai plus d'idées.

Autre indice: si je clique sur Annuler sur les propriétés du lien de données, puis click le button RefreshAll du ruban: il donne "Une erreur non spécifiée" et d'autres erreurs liées au file de données ne sont pas trouvées même si le path est valide et le file existe.

Il ne fera que rafraîchir sans dialogr si je quitte l'application Excel entière, la rouvre puis je rafraîchis.

(La fermeture de l'application Excel et la ré-ouverture via un script ne sont pas une option pour moi, car elle va gâcher ma stack d'appels et mettre fin au stream d'exécution.)

Je n'ai trouvé que deux autres liens de personnes qui ont discuté de ceci: Il n'y a pas de réponses et je ne comprends pas ce que le second dit.

J'ai rencontré ce même problème exact aujourd'hui. Il semble qu'il y ait une limite à la quantité de connections qu'il peut y avoir dans un classur. J'ai continué à recevoir l'erreur "non spécifiée" suivie des propriétés du lien de données. La limite semble être de 70. J'ai pu le réparer en revenant à mes classurs séparés et en condensant les tabs encore plus. J'espère que cela t'aides!

Ce que j'ai trouvé, c'est que dans la string de connection, il y a une string "source de données" contenant le path du nom de file et qui n'a pas de "signe avec le nom de file.wen J'ai gardé filenamepath dans cela, il a travaillé mais wen j'ai essayé de le replace par une variable contenant filenamepath it pop augmente les propriétés du lien de données de la window … sa solution doit se rapporter à cela

A eu un problème similaire et l'a résolu en changeant

Mode=Share Deny None; 

dans les propriétés de connection.

Peut-être que les connections multiples ouvraient des instances d'access distinctes et en conflit entre elles créant un conflit.

Il suffit de désactiver SendKeys avant d'opendatabase – c.-à-d.

SendKeys "~", True "incluent la véritable attente du dialog pour ouvrir

SendKeys "~" True "et appuyez sur" ok "(par enter)

Workbooks.OpenDatabase _ …