|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
Bonjour à tous !
Je (re)viens vers vous en cette fin d'année avec un nouveau problème à résoudre ! Oui, je ne m'en lasse pas. Voilà la situation, cette fois. Niveau matériel, je travaille sous XP, avec la suite office 2003. Donc configuration standard, rien de particulier à signaler. Je dispose d'une appli Access contenant (entre autres) une table de plusieurs champs. Au milieu de tout ça, un champ date. Je veux exécuter une requête paramétrée me permettant de sélectionner tous les champs compris entre deux dates. Jusque là, rien d'anormal, la requête est exécutée. Mon code est celui-ci : Code :
Par contre, après, je veux exporter ce résultat sous Excel. J'ai essayé avec deux méthodes : Code :
L'erreur sortie est : "Erreur de traitement 7874. Impossible de trouver l'objet 'Nom_de_la_requête'." Code :
Donc en gros, quelqu'un sait-il comment exporter le résultat d'une requête paramétrée ? Ou peut-il m'expliquer pourquoi, avec .TransferSpreadsheet, ma pRequete n'est pas reconnue ? Je suis à votre écoute ! Merci de m'avoir lu et merci d'avance à tous ceux qui prendront la peine de répondre ! |
||||||
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Alexis CANETÉtudiant Inscription : novembre 2009 Messages : 95 ![]() |
Hello,
Ton bout de code créer ta requête dans access si j'ai bien compri? Une fois éxécuté ta requéte est créer? Pourquoi ne pas faire ta requéte en SQL dans ton code avant export? |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
La requête est en fait créée via SQL Server Management Studio. En fait, elle apparait dans les requêtes dans le menu Access sous le nom de :
R_Export_Stat_Par_Age_Excel Sous Access, l'utilisateur choisira donc les paramètres et cliquera sur un bouton. Le bouton fera appel à une fonction (dans un module). Cette fonction est utilisée à plusieurs reprises, et pas toujours pour R_Export_Stat_Par_Age (parfois avec paramètre(s), parfois sans paramètre). Je ne peux pas entrer la requête "en dur" avant l'export, parce que R_Export_Stat_Par_Age est (vraiment) très sale (elle a été créée à partir de l'assistant SQL server management studio, donc j'ai le code SQL, mais il est tellement long que ça m'embête réellement de le copier-coller dans mon VBA). Et aussi parce que la fonction est appelée pour plusieurs requêtes. Donc si je copie la requête "en dur" avant l'export, je dois aussi me créer un switch de 3 pages avec toutes les requêtes qui passent potentiellement par cette fonction... C'est sale. Et euh... pour "une fois éxécuté ta requéte est créer ?", je ne suis pas sûr de ce que tu veux dire, mais au cas où : Oui, une fois cette ligne exécutée : Le rst contient bien toutes les infos. Il faudrait exporter rst en fait ^^ Merci de prendre le temps de te pencher sur mon pb en tout cas |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Alexis CANETÉtudiant Inscription : novembre 2009 Messages : 95 ![]() |
En exportant Rst ca marche?
C'est un peu dur pour moi de comprendre l'enssemble de ton code j'exporte le plus souvent Soit une req Access soi en code SQL. Mais si les infos que tu doi rentrer sont "Date début" et "date fin", une requéte Access fera l'affaire (avec en condition les champs d'un formulaire)??? non? dit moi si je fait fausse route |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
Bah tout peut faire l'affaire... Du moment que l'exportation marche. Donc non, tu fais pas fausse route ^^.
Qu'est-ce que tu appelles une "requête Access" par contre ... ? Parce que j'ai l'impression que c'est ce que je fais, donc je ne vois pas de quoi tu parles... Et tu ferais comment pour exporter Rst ? Parce que je sais exporter une table/requête, mais un recordset... ? Merci encore pour ton aide ! |
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() Alexis CANETÉtudiant Inscription : novembre 2009 Messages : 95 ![]() |
Créer une requête avec l'assistant Access revien à créer une requete en SQL.
Tu as ton champs date et tu voudrai qu'il te sorte les enregistrement correspondant entre la date X et la date Y (Qui sont de ce que j'ai compri des varibales?) En SQL cela donne cela: On va appeller la requête "REQ" Code :
J'éspére que cela te parle et que je suis toujours sur la bonne voi PI: Pour faire appel au champs d'un formulaire il faut que tu lui indique comme ci dessous: En form Access [Formulaires]![Nom Formulaire]![Nom du champs] En SQL [Forms]![Nom Formulaire]![Nom du champs] |
||
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
Oui oui ça me parle, aucun pb ^^.
En fait, à l'heure actuelle, la requête SQL est écrite de cette façon : Code :
Donc mon prédécesseur l'a codé de cette manière (via l'assistant Access je pense, en fait). Donc selon toi, je vire le "BETWEEN @pDebut AND @pFin" et je le remplace par "> [Forms]!...![Champ1] AND < [Forms]!...![Champ2]" ? C'est ça ? (je vais faire qqes tests en attendant ta réponse, quand même ^^) |
||
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Alexis CANETÉtudiant Inscription : novembre 2009 Messages : 95 ![]() |
Between marche aussi,
Oui en gros c'est ce que je te conseille de faire et tu exporte cette requéte avec Transfertspreadsheet et normalement ca roule PS: @pDebut et ton @pFin font référence à quoi? il s'agit des deux champs qu'il te demande de remplir lors de l'exécution de ta requéte??? |
|
|
00
|
|
|
#9 | |||
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
Oui ce sont les deux champs à remplir à l'exécution.
Et justement, le problème reste toujours l'export sous Excel... D'une manière ou de l'autre (la tienne ou la mienne), la requête s'exécute impeccablement. Mais à l'export, avec .TransfertSpreadSheet, ça plante (ou, au mieux, les paramètres doivent être à nouveau entrés). Lorsqu'on exécute DoCmd.TransfertSpreadSheet .... le code réexécute la requête (je crois). Et à ce moment là, il ne prend pas en compte les paramètres entrés dans le formulaire (en tout cas, j'ai pas réussi). MAIS (oui parce qu'il y a un "mais") en fin de compte, tu as quand même résolu mon problème, juste avec ça : Citation:
![]() Je l'ai relu il y a 5min là, et jme suis souvenu que j'avais utilisé quelque chose qui permettait ça. Donc en fin de compte, mon code est toujours le même (voir premier message), mais pour la partie "export vers Excel", je ne cherche plus à exporter la requête en elle-même, mais le Recordset rst ! Code :
Voilà..! Merci pour ton aide, qui m'a été très précieuse ! |
|||
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Alexis CANETÉtudiant Inscription : novembre 2009 Messages : 95 ![]() |
Humm bizzar pour le formulaire, bien sur il faut que le formulaire soit ouvert, ou alors que els champ de ton formulaire, correspondent à une table et du coup ta requéte s'exécute non plus sur le formulaire mais sur la table
.Enfin bref ta m'éthode pour résoudre ce probléme est marrante et un peu tordu mais si ca fonctionne pour toi tant mieux @+ Pour de nouvelles aventures Alex |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com