Problème d'actualisation d'une feuille liée à une requête access

kalmard

XLDnaute Nouveau
Bonjour,

Ce problème a peut être déja été posée, si c'est le cas je vous serais reconnaissant de bien vouloir m'indiquer le(s) lien(s) de cette discusion.


Je dispose d'une part d'un fichier access (Essai) dans laquelle j'ai une table nommée "Matable" et une requête nommée "Marequete" et dautre part j'ai
un classeur prenant en charge les macros (fichier xlsm) nommée "ficheliee".
Dans "ficheliee" j'ai la feuille "Fiche" qui est liée à la requête "Marequête" c'est-à-dire que "Fiche" affiche les résultats de "Marequête".Lorsqu'on modifie
"Marequete", à l'ouverture de "ficheliee" ces modifications sont prises en compte dans la feuille "Fiche".



J'ai ensuite saisi une macro qui envoie "ficheliee" par mail via des lignes de commandes (fichier .bat) l'envoi s'effectue sans problème mais
le souci c'est que le fichier envoyé ne contient pas les données actualisées de la feuille "Fiche" pourtant ma macro contient l'insruction
Activeworbook.save .


Pour être plus expilicite, voici ce qui se passe:

j'éxcute "Marequete" j'ai ma liste de 10 joueurs, j'enregistre et je ferme access. J'ouvre ensuite "ficheliee" , j'ai la même liste de 10 joueurs dans la feuille
"Fiche" j'enregistre et je ferme .
J'exécute à nouveau "Marequete" en affichant que les joueurs dont le nom commence par R ==> j'ai donc 3 joueurs: Ribery Rooney et Ronaldo j'enregistre je ferme access
lorsque je lance la ligne de commande qui envoie le fichier "ficheliee" mes destinataires reçoivent un fichier qui contient tous les joueurs au lieu des 3 précités.
La question est donc comment faire en sorte que le fichier envoyée soit actualisée?



Pour plus de détails je vous joints mes deux fichiers .


Merci pour votre aide.
 

Pièces jointes

  • Essai.zip
    35 KB · Affichages: 42
  • Essai.zip
    35 KB · Affichages: 46
  • Essai.zip
    35 KB · Affichages: 44

tototiti2008

XLDnaute Barbatruc
Re : Problème d'actualisation d'une feuille liée à une requête access

Bonjour kalmard,

J'ai ensuite saisi une macro qui envoie "ficheliee" par mail via des lignes de commandes (fichier .bat)

il faudrait que cette macro commence par actualiser les données avant de faire les envois
comment envoies-tu des mail avec pièce jointe par des fichier .bat ?
 

kalmard

XLDnaute Nouveau
Re : Problème d'actualisation d'une feuille liée à une requête access

Salut tototiti2008, merci de l'intérêt que tu portes à mon problème.

il faudrait que cette macro commence par actualiser les données avant de faire les envois

En fait lors de ma liaison à la requête access (données--->Données externes--->Depuis Access--->je choisi la base access--->je choisi ma requête--->Importation de données ---> Propriété--->Actualiser les données lors de l'ouverture du fichier joint) ma base s'actualise à l'ouverture sauf que cette actualisation n'est pas prise en compte quand j'envoie mon fichier en pièce jointe via ma macro et ce même lorsque j'impose des syntaxe de sauvegarde comme tu peux le voir sur le fichier en pièce jointe.

comment envoies-tu des mail avec pièce jointe par des fichier .bat ?

Dans le "Thisworkbook" du fichier joint, j'ai un code qui prend en paramètre une ligne de commande.

Et ma ligne de commande éxécute la macro fichefoot(qui lui éxécute la fonction EnvoiEmail du fichier) :

Code:
"C:\Program Files\Microsoft Office\Office12\EXCEL.exe" /cmd/fichefoot "D:\PJ\fichelieex.xlsm"

Si tu veux d'autres précisions n'hésite pas car j'ai vraiment besoin d'aide, je bloque dessus depuis bientôt 2 jours.


A+
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Problème d'actualisation d'une feuille liée à une requête access

Re,

Désolé, je ne peux pas ouvrir les zip donc je n'ai pas vu tes fichiers

Et ma ligne de commande éxécute la macro fichefoot(qui lui éxécute la fonction EnvoiEmail du fichier)

Et si ta macro fichefoot commençait par rafraichir tes données externes (par exemple avec une ligne de code du style thisworkbook.Refreshall) ?

Edit : et ne pas oublier d'enregistrer le classeur après rafraichissement...
 
Dernière édition:

kalmard

XLDnaute Nouveau
Re : Problème d'actualisation d'une feuille liée à une requête access

Salut,
J'ai essayé avec thisworkbook.Refreshall mais ça marche pas.

Code:
Sub Bilan()
ThisWorkbook.RefreshAll
ActiveWorkbook.Save
Kill "D:\MOI\mondoc.xlsm"
ActiveWorkbook.SaveCopyAs "D:\MOI\mondoc.xlsm"
End Sub

En liant ma table j'ai coché l'option actualisé à l'ouverture du fichier ,je pense que cette option est en conflit avec la macro, c-à-d que la macro s'éxcute avant que les données ne soient actualisées .

T'aurais pas une solution à ce problème?

Je pense qu'il faille tout faire ( je me trompe peut-être) avec la macro :
lui demander d'activer la connexion et ensuite de rafraichir tout calcul .
mais sauf que je vois pas comment écrire tout ça en vb .

Merci encore pour ton aide.


A+
 

tototiti2008

XLDnaute Barbatruc
Re : Problème d'actualisation d'une feuille liée à une requête access

Bonjour kalmard,

il faut que tu ailles dans tes données externes qui se mettent à jour et que tu enlèves l'option "Activer l'actualisation en arrière-plan", au même endroit que l'actualisation à l'ouverture
Comme ça le Refreshall attendra que ce soit fini pour passer à l'étape suiavnte
 

tototiti2008

XLDnaute Barbatruc
Re : Problème d'actualisation d'une feuille liée à une requête access

Bonjour kalmard,

Il n'y a pas de bouton pour marquer une discussion comme résolue sur ce forum, si tu y tiens, tu peux éditer ton tout premier message du fil et éditer son titre en ajoutant [Résolu] dedans
 

kalmard

XLDnaute Nouveau
Re : Problème d'actualisation d'une feuille liée à une requête access

Salut tototiti2008,

J'ai essayé de faire la même chose sur un autre classeur et ça ne marche pas.
Je m'explique, mon nouveau classeur contient 4 feuilles qui sont chacunes liées à une requête access (chaque requête appartenant à une base distincte). J'ai donc décoché l'option "Activer l'actualisation en arrière plan" sur chaque feuille et j'ai ensuite rajouté une nouvelle feuille après chaque feuille liée, au total donc 4 nouvelles feuilles. Le but de ces 4 nouvelles feuilles est de faire des calcul en se basant sur la feuille "liée" qui la précède.
Chaque calcul se fait par une macro==> 4 macros .

Mon problème est que lorsque j'exécute ma macro mère (raffraissement+Enregistrement+éxécution des 4 macros de calcul+envoie mail), l'envoie ne se fait pas immédiatement il apparait une boite de dialogue disant :

"Cette action va annulée une commande d'actualisation" je dois ensuite cliquer sur "oui" pour que le mail soit envoyer; ce qui n'est pas le cas avec mon premier classeur.

T'aurais pas une idée pour éviter ce message ?


Merci encore.
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 958
Membres
103 990
dernier inscrit
lamiadebz