ACCESS-Tri par ordre numerique illogique

Résolu/Fermé
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 - 8 nov. 2007 à 11:40
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 - 23 nov. 2007 à 12:36
Bonjour chers membres et non membres de CCM,

Je viens a vous une fois de plus, avec un probleme Access... Un truc tout bete... Mais qui me prend la tete... vous imaginez meme pas (enfin, si vous etes sur ce site, j'imagine que si...)

C'est tres simple. Imaginez la scene :

J'ai un formulaire contenant plusieurs champs. Ils decrivent des problemes informatiques que des employes ont rencontre dans mon entreprise.
Les informations rentraient (date, nom de l'employes, poste, type de probleme, description...) sont envoyes au IT service (Service informatique... la ou je travaille) pour etre resolu...
La, en fonction du type de probleme, ils sont assignes aux diverses personnes de l'IT Team (Equipe Informatique... vous vous en doutiez non ?).
En bas du formulaire ou sont affiches les divers problemes, il y a des boutons avec le nom correspondant a un employe du service IT. Grace a une macro que j'ai repare (voir topic "Bug de macro de filtre sous Access 2007" par WildDragon...), lorsque l'on clic su l'un des boutons (par exemple Paul Machin), on obtient tous les problemes non resolu (c-a-d qui n'ont pas une date dans la case "Date de resolution") par l'employe en question (donc on obtient tous les problemes que Paul Machin n'a pas encore resolu...).
En gros, cette base Access est un HelpDesk... Une aide de bureau informatique...

Bon, mon probleme, c'est que, vous vous en doutez, chaque employe du IT service a plusieurs problemes a resoudre. Les differents champs provienne d'une table avec comme cle primaire un numero auto. Grace a une requete, les divers enregistrements pour les divers boutons (employes) sont classes par numero auto dans l'ordre croissant...

Bien que il y ai une requete pour chaque bouton, a un ou deux criteres pres, elles sont identiques... Et c'est bien le probleme...

Car, pour Paul Machin et Bill Truc, les numeros auto sont dans l'ordre croissant... Mais pas pour Michel Bidule, ou les enregistrements sont ranger dans n'importe quel ordre... C'EST PAS LOGIQUE !!!! C'est les memes requetes !!!

Bien sur, on peut faire clic droit sur le champs et demander a le classer par ordre croissant...a chaque ouverture... mais c'est cence le faire automatiquement... Donc c'est pas la bonne solution...

J'utilise Access 2007... On peut configurer l'option pour que ca reste dans l'ordre croissant a chaque fois... Mais je fais parti des rares a avoir cette version... Et sous 2003, on range dans le bon ordre, on ferme Access, on reouvre, et rebelotte...

Voila...
Vous savez tout...

Donc si vous avez une idee, proposez... Et si vous manquez derenseignement, demandez moi...

Je vous remercie d'avance (et m'excuse pour le manque d'accent... vous aurez surement compris avec les traductions que j'ai faite que je suis dans une entreprise anglaise dont tous les clavier sont QWERTY... et donc sans accents... donc sorry...^^)

27 réponses

Bonjour,

Ce serait bien la première fois que je rencontre quelque chose de pas logique en informatique...

Vous dites que vos requêtes sont les mêmes, mais est-ce que les attributs ont les mêmes caractéristiques ? Avez-vous vérifié le type de données (texte/numérique) et les règles de tri (access se distingue par leur complexité) ? Si le tri porte sur des résultats de requêtes imbriquées ce n'est pas toujours facile de savoir le critère de tri qui s'applique en raison des variantes régionales.

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
8 nov. 2007 à 14:47
Bonjour Manu,

Je tiens a vous remercier car c'est mon troisieme topic en programmation en 1 mois et vous etes la premiere personne qui repond a l'une d'elle...
Excusez moi d'avance mais est ce que je peux vous tutoyer sinon je risque de me concentrer plus sur ca que sur mon probleme (et n'hesitez pas a me tutoyer aussi...)

Bon, je vois que tu t'y connais assez bien en informatique et en access... un peu plus que moi parce qu'il y a certaine chose, surtout au niveau des mots un peu technique ou j'ai du mal...
Mais je vais tente d'eclaire ta lanterne...

Tout d'abord, il me semble les champs qui servent de tri dans les requetes sont en tout point identique...
En fait, ces requetes partent d'une meme table et envoi leur information a une meme table... Elles different par le critere de la colonne "Assigne a"... Par exemple, la requete "PaulMachinRequest" aura pour effet de selectionner dans la table "ProblemeRecordTable" (table ou sont enregistre les problemes et leurs caracteristiques ainsi que le nom des employes auxquels ils sont assignes) tous les problemes assigne a Paul Machin et de faire apparaitre les differents enregistrements (accessibles avec les bouton du style "enregistrement suivant" et "enregistrement precedant") dans la table "ConsultationITProblemeTable".

Mais, vu que je n'ai pas cree cette base de donnees, je me pose une question...
Vu que j'ai corriger les macros des divers boutons, Est ce que ils n'ont pas plutot utilise une requete generale qui envoie tous les enregistrements de la premiere table vers la deuxiemeet que les macros servent alors a faire le tri... (desole, j'ecris mais pensees comme elles me viennent au moment ou elles me viennent...).
Si c'est le cas, pourquoi il n'y a que 2 boutons sur 6 (chiffre exact) qui ne classent pas les enregistrements par numero auto par ordre croissant ?
Autre question : Est-il possible de faire en sorte qu'une macro, en plus de la premier fonction qu'on lui a donne (afficher en fonction du nom de l'employe), trier par ordre alphabetique dans un autre champs ?

Bon, j'espere que j'ai bien tout explique et que tu pourras m'aider...
A+
0
Bonsoir,

Bon disons de suite que pour vous aider, il faut le détail des macros au lieu de périphrases ("la macro fait telle chose...").

Bon, vous savez modifier des macros. Une macro est une suite d'actions. Donnez-nous la liste des actions pour une macro qui trie bien, et la liste des actions pour une macro qui trie mal.

Les actions sont du genre "Avertissement", "Exécuter commande", "Exécuter SQL". Pour chacune il y a un commentaire (utile pour vous aider) et un champ qui détaille l'action : le type d'avertissement, la commande exécutée, etc... (ça ne me gêne pas si c'est en anglais).

Si vous ne les donnez pas, c'est sans espoir.

Bon courage.

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
9 nov. 2007 à 09:08
Bonjour Manu,

Je n'ai pas pense a le preciser dans le debut du topic (ou dumoins, je n'ai pas mis l'adresse) mais j'ai deja fait un topic pour qu'on m'aide a reparer les macros dont vous me demandez des details...
Et j'ai fini par resoudre le probleme tout seul em metant, dans le dernier message du topic, toute ma demarche, toute la composition de mes macros ainsi que les nom et les termes qui nous interresse...

http://www.commentcamarche.net/forum/affich 3803532 bug de macro de filtre sous access 2007#0

Voici donc le lien de ce topic, le premier message expose mon probleme, le deuxieme est une erreur que j'ai faite, et le troisieme est la solution...
Dites moi s'il y a tout ce que vous voulez...
Maintenant que j'y pense, j'ai bien une case commentaire mais elle est vide... Je n'y ai rien mis et rien n'y etait avant...

J'ai cree une macro identique pour tous mes boutons, il n'y que le nom de l'employe qui change...

Si vous manquez encore d'informations, dites le moi...

Et merci encore pour votre aide...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

C'est vraiment un roman votre affaire, et ce n'est pas facile de trouver l'information utile.

J'ai quand même repéré que votre sélection est fondée sur l'extrait de requête SQL suivant :

[tblHelpdesk]![AssignedTo]="Paul Johns" And IsNull([tblHelpdesk]![CompletedDate])

Ce serait bien que vous puissiez donner la requête complète, surtout dans les deux cas (bouton qui trie bien et bouton qui trie mal). Normalement à la fin d'une telle requête il doit y avoir une clause orderby qui donne l'ordre de restitution des résultats.

Attention : access a des limitations du genre "la requête ne doit pas faire plus de 255 caractères". Si la clause orderby n'a pas été mise faute de place, il vous faudra renommer vos attributs pour avoir des noms plus courts et faire de la place....

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
12 nov. 2007 à 12:50
Bonjour Manu,

J'ai un peu de taf, la, mais des que j'ai un moment, je tente de te donner toutes les informations necessaires...
En tout cas, merci encore d'etre patient...

C'est vrai que je suis toujours beaucoup dans le Roman...^^ Difficile a suivre quand on fait de la programmation...

A tres bientot
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
12 nov. 2007 à 15:29
Rebonjour...

Je relis votre dernier message et je me rends compte que, pour vous aidez (a m'aider), j'ai peut-etre melanger certains termes...
Ou puis-je trouver mes requetes en SQL ?

Je vais essayer de les trouver par moi meme mais je ne suis pas certains d'y arriver... Si deja j'arrive au bon endroit, il y a des chances que je vous donne les informations dont vous avez besoin...

En effet, je ne savais pas comment vous donner mes requetes vu que je les traite en general de maniere graphique...

Du coup, je vais chercher ce que vous me demander un fois que j'aurai trouve (ou que vous m'aurez dit ou chercher).

Je m'y mets de suite et je verifierai mes messages de temps en temps...
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
12 nov. 2007 à 15:46
Rebonjour...

Je relis votre dernier message et je me rends compte que, pour vous aidez (a m'aider), j'ai peut-etre melanger certains termes...
Ou puis-je trouver mes requetes en SQL ?

Je vais essayer de les trouver par moi meme mais je ne suis pas certains d'y arriver... Si deja j'arrive au bon endroit, il y a des chances que je vous donne les informations dont vous avez besoin...

En effet, je ne savais pas comment vous donner mes requetes vu que je les traite en general de maniere graphique...

Du coup, je vais chercher ce que vous me demander un fois que j'aurai trouve (ou que vous m'aurez dit ou chercher).

Je m'y mets de suite et je verifierai mes messages de temps en temps...
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
14 nov. 2007 à 11:05
Bonjour Manu,

J'ai eu un peu de temps pour me consacrer a ma base donnee mais je n'ai pas compris ou trouver les requetes que j'ai faite graphiquement en version SQL... les requetes SQL seraient surement plus explicite pour ce probleme... en graphique, ca revient a faire ce que j'ai deja fait : expliquer dans un roman comment elles sont...

Donc, si vous pouvez me donner un ptit tuyau, ca m'aiderai a faire avancer le chmilblic... ^^
0
Bonjour,

Je ne sais pas bien comment vous vous y prenez pour composer vos requêtes (moi j'évite les paramétrages graphiques, c'est trop difficile à recopier dans ses notes personnelles ou à expliquer sur un forum, alors qu'en mode texte il suffit d'un copier-coller). Deux tuyaux néanmoins :

- quand vous avez une grille de composition de requêtes (avec des colonnes qui donnent les attributs sur lesquels porte la requête), le menu contextuel comporte une option "requête SQL" qui montre la traduction en SQL de votre requête. En copiant cette requête sur le forum, ça aidera beaucoup.

- dans les mêmes conditions, les dernières lignes sont intitulées "critères" et "ou" (je crois que ça aurait dû être où, donc en anglais il y a des chances que ce soit "where"). Sur la dernière ligne ("ou") le menu contextuel comporte une option "propriétés" qui elle-même comporte une option "tri". C'est a priori là que vous avez quelque chose à faire....

Bonne chance

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
14 nov. 2007 à 15:26
Bonjour Manu,

Pour le deuxieme point, j'ai deja verifie et l'option de tri a ete rempli correctement...
Pour le premier point, je passe un ou 2 coups de telephone pour le travail et je m'y remet... J'ai compris les indications (c'etait simple mais je n'y avais pas pense).

Apres, dans un formulaire, il possible d'inserer les champs d'une requete mais egalement d'une table...
Hors les champs d'une table ne sont pas classe il me semble...

Il est donc peut-etre possible qu'ils aient inserer les champs de la table et non de la requete, ce qui fait que l'option de tri de la requete n'est pas appliquee...

Je vais asseye de trouver l'origine de ces champs...
Je vous donnes des infos des que j'en sais plus (et surtout, des qu'on me laisse 2 sec de repis).
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
15 nov. 2007 à 10:05
Bonjour Manu (en ce froid matin)

Je me suis renseigne et je sais a present qui a cree cette base de donneee. Je vais pouvoir lui demander ce qu'il a utilise : les champs de la table ou ceux de la requete... avec ce renseignement, ca devrait faire avancer les choses...

S'il a utilise ceux de la table, il me suffit, en verifiant que toutes les options sont respectes, de les remplacer par ceux de la requete...
Si c'est ceux de la requete, on en sera au meme point... Il me suffira alors de vous envoyer les differentes requetes SQL utilises...

Je vais lui demander des qu'il arrive et je vous tiens au courant...
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
15 nov. 2007 à 11:55
Bon, j'avais raison, quand on regarde les relations, il n'a relie que des tables...

Resultat, il peut bien avoir fait une requete avec un classement ascendant pour les numero auto, ca changera rien...

J'ai donc cree une requete qui reprend toute la table utilisee dans ce formulaire, et qui donne une nouvelle table qui, elle, est bien rangee...
Bon, un peu long apres de recreer le formulaire avec ces nouveaux champs car je dois refaire le meme design, reprendre les SQL pour chaque bouton... bon... tout va bien, j'ai tout refait...

Mais quand j'utilise un bouton utilisant cette macro

[tblHelpdesk]![AssignedTo]="Paul Johns" And IsNull([tblHelpdesk]![CompletedDate])

ca recommence a me les classer n'importe comment (a mon avis, ca doit etre dans l'ordre dans lequel les divers problemes ont ete consulte pour la premiere fois...

Ce que j'ai fait n'est pas totalement inutile mais le probleme reste le meme...
Mais j'ai 2 idees... mais je ne sais pas si elles sont realisables :

Idee 1 : dans cette macro (dans cette ligne), rajouter quelque chose (un mot, un symbole) qui classe les enregistrements dans mes filtres... ca existe ?

Idee 2 : que cette macro, au lieu d'envoyer son tri dans la table, l'envoi dans la requete qui precede cette table pour que les resultats de cette macro soient triees par la requete...

Euh... je sais pas si c'est clair...
Mais si c'est possible, c'est sur que ca marchera...

Avez-vous une idee ?
0
Bonjour,

- dans le message 11, vous dites "le tri a été rempli correctement". C'est sûrement vrai, mais si vous le montriez d'autres personnes pourraient avoir un avis. Pensez à montrer les deux versions (celle qui trie bien et celle qui trie mal).

- dans le message 12, vous parlez "reprendre les SQL pour chaque bouton". Là aussi ce serait plus efficace que vous les montriez (dans les deux versions).

et puis, j'en reviens à mon message 1, je ne sais toujours pas comment est déclaré le champ sur lequel se fait le tri (texte, nombre, date, ...). Je n'attends pas une explication, mais un copier-coller de l'information telle qu'elle est présente dans Access.

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
15 nov. 2007 à 13:00
Ok !!!

Excusez-moi, je suis un peu long a la detente...

Concernant le champ sur lequel se fait le tri, voici toutes les informations :

(c'est en anglais mais bon, je vous donne les infos dans l'ordre, ca sera facile a retrouver sur la version francaise)

Dans le tableau :
Field Name : CallNo
Data Type : AutoNumber
Description : Carry on from 10600

Onglet : General :--
Field Siza : Long Integer
New Values : Increment
Format : \20000 (ca commence a 20000, puis 20001...)
Caption : Call No
Indexed : Yes (No Duplicates)
Smart Tags :
Text Align : General

(vous ne m'en demandiez pas tant mais t'en qu'a faire, je vous ai tout donne...)





Concernant le message 11 :

En commencant a repondre a ceci, j'ai decouvers les requetes qu'ils ont cree pour leur tri... Il y a une requete par employe...
Mais je ne suis pas persuade qu'ils les ai utilise...

Je vous donne quand meme 2 de ces requetes.
Je vais y changer les noms...

Tout d'abord, la requete que j'ai cree pour la table dont les champs sont dans le formulaire qui nous interresse : (c'est la requete de base qui nous affiche tous les resultats dans ce formulaire... c'est ce qu'on a des qu'on l'ouvre...)

SELECT tblSAPHelpdesk.CallNo, tblSAPHelpdesk.EntryDate, tblSAPHelpdesk.Requestor, tblSAPHelpdesk.SummaryProblem, tblSAPHelpdesk.CallType, tblSAPHelpdesk.Department, tblSAPHelpdesk.Priority, tblSAPHelpdesk.TransactionCode, tblSAPHelpdesk.MenuPath, tblSAPHelpdesk.ErrorMessage, tblSAPHelpdesk.ProblemDescription, tblSAPHelpdesk.TransactionalData, tblSAPHelpdesk.[Additional Information], tblSAPHelpdesk.Status, tblSAPHelpdesk.AssignedDate, tblSAPHelpdesk.AssignedTo, tblSAPHelpdesk.DateDue, tblSAPHelpdesk.CompletedDate, tblSAPHelpdesk.Hours, tblSAPHelpdesk.TestData, tblSAPHelpdesk.TestClient, tblSAPHelpdesk.Solution, tblSAPHelpdesk.MenuPathForConfig, tblSAPHelpdesk.TransportNos, tblSAPHelpdesk.TransportMoved, tblSAPHelpdesk.ITOnlyExtra
FROM tblSAPHelpdesk
ORDER BY tblSAPHelpdesk.CallNo;



Requete 1 : pour l'employe Paul Machin : (c'est a dire, la requete qui est cence se lancer quand on clic sur le bouton "Paul Machin")

SELECT tblSAPHelpdesk.CallNo, tblSAPHelpdesk.EntryDate, tblSAPHelpdesk.Requestor, tblSAPHelpdesk.SummaryProblem, tblSAPHelpdesk.CallType, tblSAPHelpdesk.Department, tblSAPHelpdesk.Priority, tblSAPHelpdesk.TransactionCode, tblSAPHelpdesk.MenuPath, tblSAPHelpdesk.ErrorMessage, tblSAPHelpdesk.ProblemDescription, tblSAPHelpdesk.TransactionalData, tblSAPHelpdesk.[Additional Information], tblSAPHelpdesk.Status, tblSAPHelpdesk.AssignedDate, tblSAPHelpdesk.AssignedTo, tblSAPHelpdesk.DateDue, tblSAPHelpdesk.CompletedDate, tblSAPHelpdesk.Hours, tblSAPHelpdesk.TestData, tblSAPHelpdesk.TestClient, tblSAPHelpdesk.Solution, tblSAPHelpdesk.MenuPathForConfig, tblSAPHelpdesk.TransportNos, tblSAPHelpdesk.TransportMoved
FROM tblSAPHelpdesk
WHERE (((tblSAPHelpdesk.AssignedTo)="PAUL MACHIN"))
ORDER BY tblSAPHelpdesk.CallNo;


Requete 2 : pour l'employe Jack Truc : (c'est a dire, la requete qui est cence se lancer quand on clic sur le bouton "Jack Truc")

SELECT tblSAPHelpdesk.CallNo, tblSAPHelpdesk.EntryDate, tblSAPHelpdesk.Requestor, tblSAPHelpdesk.SummaryProblem, tblSAPHelpdesk.CallType, tblSAPHelpdesk.Department, tblSAPHelpdesk.Priority, tblSAPHelpdesk.TransactionCode, tblSAPHelpdesk.MenuPath, tblSAPHelpdesk.ErrorMessage, tblSAPHelpdesk.ProblemDescription, tblSAPHelpdesk.TransactionalData, tblSAPHelpdesk.[Additional Information], tblSAPHelpdesk.Status, tblSAPHelpdesk.AssignedDate, tblSAPHelpdesk.AssignedTo, tblSAPHelpdesk.DateDue, tblSAPHelpdesk.CompletedDate, tblSAPHelpdesk.Hours, tblSAPHelpdesk.TestData, tblSAPHelpdesk.TestClient, tblSAPHelpdesk.Solution, tblSAPHelpdesk.MenuPathForConfig, tblSAPHelpdesk.TransportNos, tblSAPHelpdesk.TransportMoved
FROM tblSAPHelpdesk
WHERE (((tblSAPHelpdesk.AssignedTo)="JACK TRUC"))
ORDER BY tblSAPHelpdesk.CallNo;



Ces requetes sont presque suffisante pour filtrer les enregistrements. Il n'y manque qu'une chose :
Lorsque l'on clic sur le bouton "Paul Machin", on doit non seulement avoir tout les enregistrements ou Assigned To = PAUL MACHIN

WHERE (((tblSAPHelpdesk.AssignedTo)="PAUL MACHIN"))

Mais aussi qui selectionne les enregistrements qui n'ont pas encore ete resolus, c'est a dire la ou il n'y a pas de CompletedDate. Et la, la requete ne fait pas la selection...





C'est pour ca qu'ils ont cree une macro pour chaque bouton dont le code (je le redonne) est le suivant :

Pour le bouton "Paul Machin" :

[tblHelpdesk]![AssignedTo]="Paul Machin" And IsNull([tblHelpdesk]![CompletedDate])

Pour le bouton "Jack Truc"

[tblHelpdesk]![AssignedTo]="Jack Truc" And IsNull([tblHelpdesk]![CompletedDate])

Mais la, ce qui nous manque, c'est le classement par ordre croissant du champ CallNo. Car les macros remplacent les requetes...

Il faut donc une macro ou une requete pour chaque bouton qui, en meme temps :
-classe par ordre croissant du champ CallNo.
-selectionne les enregistrements qui n'ont pas encore ete resolus.

J'espere aue cette fois, c'est complet...

Je vais tenter un truc de mon cote mais j'attends aussi vos Idees...


WildDragon... Ses poulets, ses poules, ses oeufs et s'ecaille(de Dragon...) [CCM.I.B - Agent WD]
0
Bonjour,

Un net progrès : vous nous avez montré des informations exploitables.

Je suppose que vous voulez trier selon la valeur de CallNo, qui est attribuée séquentiellement et donc que cet ordre est le même que l'ordre d'ancienneté dans la base.

Les requêtes pour Paul Machin et Jack Truc comportent bien le "order by" qui permettent d'avoir le résultat trié comme attendu.

Par contre, le complément de filtrage n'a pas lieu d'être. Elle doit faire perdre l'ordre de classement.

Je suggère que vous rajoutiez le critère complémentaire dans les requêtes SQL :

remplacez :

WHERE (((tblSAPHelpdesk.AssignedTo)="PAUL MACHIN"))

par :

WHERE (((tblSAPHelpdesk.AssignedTo)="PAUL MACHIN") AND IsNull([tblSAPHelpdesk]![CompletedDate]))

et vous pouvez supprimer les macros de filtrage complémentaire.

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
15 nov. 2007 à 14:39
En vous explicitant tout mon probleme dans le precedant message, il m'est venu la meme idee...
J'ai complete les requetes...

Cependant, une derniere complication me pose probleme :

Comment un bouton peut lancer une requete dans le meme formulaire ?

Dois-je creer un formulaire pour chaque requete ? Dois-je creer une table (dont les champs seront dans un nouveau formulaire) qui recuperera les enregistrements de mes requetes ?

Je pose la question car ce sont des formulaires assez complexes qu'il me faudrait refaire... c'etait pour savoir si le bouton pouvait appliquer sa requete dans le formulaire meme... et ainsi n'avoir qu'un seul formulaire...
0
Bonjour,

La désignation de la source de données dans une macro s'opère par le nom. Vous avez remarqué que dans le filtrage initial il y avait "IsNull([tblHelpdesk]![CompletedDate])", et que dans ma proposition c'était IsNull([tblSAPHelpdesk]![CompletedDate]

Tout ceci parce que votre formulaire s'appelle tblHelpdesk alors que la table initiale s'appelle tblSAPHelpdesk

A priori vous n'avez pas les formulaires à refaire. Votre bouton déclenche une suite d'actions. Vous avez juste à supprimer l'action (la ligne) qui appelle le filtrage complémentaire. J'ai aussi vérifié que votre requête SQL dépasse déjà les 255 caractères, vous êtes donc dans un cas où vous pouvez l'allonger sans problème (faites attention aux parenthèses).

Manu
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
15 nov. 2007 à 15:09
Euh... excusez moi mais je n'ai pas tres bien compris...

Je vais prendre un exemple :

- J'ai mon formulaire frmSAPHelpdeskSolutions. Il contient un bouton qui s'appelle "Paul Machin"

-La commande SQL de mon bouton, pas encore corriger, toujours rattache a une macro de tri, donne ceci :

Private Sub cmdPaulws_Click()
On Error GoTo Err_cmdPaulws_click
Dim stDocName As String
stDocName = "mcrSapassignselectorPaul"
DoCmd.RunMacro stDocName

Exit_cmdPaulws_click:
Exit Sub

Err_cmdPaulws_click:
MsgBox Err.Description
Resume Exit_cmdPaulws_click


-La macro appliquee a mon bouton, appeler mcrSapassignselectorPaul, est la suivante :

[tblSAPHelpdesk]![AssignedTo]="Paul Machin" And IsNull([tblSAPHelpdesk]![CompletedDate])


-Et ma requete SQL, que j'ai complete, donne ceci :

SELECT tblSAPHelpdesk.CallNo, tblSAPHelpdesk.EntryDate, tblSAPHelpdesk.Requestor, tblSAPHelpdesk.SummaryProblem, tblSAPHelpdesk.CallType, tblSAPHelpdesk.Department, tblSAPHelpdesk.Priority, tblSAPHelpdesk.TransactionCode, tblSAPHelpdesk.MenuPath, tblSAPHelpdesk.ErrorMessage, tblSAPHelpdesk.ProblemDescription, tblSAPHelpdesk.TransactionalData, tblSAPHelpdesk.[Additional Information], tblSAPHelpdesk.Status, tblSAPHelpdesk.AssignedDate, tblSAPHelpdesk.AssignedTo, tblSAPHelpdesk.DateDue, tblSAPHelpdesk.CompletedDate, tblSAPHelpdesk.Hours, tblSAPHelpdesk.TestData, tblSAPHelpdesk.TestClient, tblSAPHelpdesk.Solution, tblSAPHelpdesk.MenuPathForConfig, tblSAPHelpdesk.TransportNos, tblSAPHelpdesk.TransportMoved
FROM tblSAPHelpdesk
WHERE (((tblSAPHelpdesk.AssignedTo)="Paul Machin") AND ((tblSAPHelpdesk.CompletedDate) Is Null))
ORDER BY tblSAPHelpdesk.CallNo;

End Sub





Que dois-je modifie, supprimer, et ou dois-je le faire pour lancer la requete avec mon bouton afin que cela s'applique dans le formulaire frmSAPHelpdeskSolutions ?
0
Bonjour,

Ah, ça redevient difficile, parce que le VB...

La macro mcrSapassignselectorPaul, que vous présentez cette fois-ci n'est plus la même. Elle porte maintenant sur tblSAPHelpdesk et non tblHelpdesk. L'avez-vous modifiée ?

Je comprends que tblHelpdesk est le nom de votre requête SQL (ce qui commence par select) et si j'ai bien compris, vous devez remplacer dans le VB (ce qui commence par private) la référence à la macro (actuellement mcrSapassignselectorPaul) par la référence à la requête SQL (tblHelpdesk si j'ai bien deviné). Votre macro mcrSapassignselectorPaul n'apporte pas de valeur ajoutée si vous avez autant de requêtes SQL que de personnes (initialement il devait sans doute y avoir une requête SQL identique pour toutes les personnes, et un filtrage par bouton spécifique pour chaque personne...)

J'ai quand même des doutes, votre requête SQL ramène une vingtaine de valeurs, c'est beaucoup pour un formulaire, il doit y avoir un autre filtrage dans la macro mcrSapassignselectorPaul. Si la méthode ci-dessus ne marche pas, essayer de nous montrer tout ce qui est associé à cette macro.

Manu.
0
WildDragon Messages postés 1347 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 28 octobre 2009 34
15 nov. 2007 à 17:01
Rebonjour Manu,

Tout d'abord, j'ai cherche partout et je ne trouve nulle trace de quoi que ce soit qui s'appelait tblHelpdesk...
Je suis vraiment desole... j'ai du, la premiere fois, dans le precedant topic, la copier a la main et faire une erreur (ou peut-etre d'autre personne l'ont-elles utilise et modifie entre temps...) et vu que dans cette conversation nous avons fait un copier/coller a chaque fois, l'erreur de nom a suivie...

Sinon on utilise :
tbl au debut des nom pour designer une table
frm pour un formulaire
qry pour une requete
mcr pour une macro

Le formulaire dans lequel j'ai les boutons et dans lequel je veux afficher les resultats de mes requetes se nomme frmSAPHelpdeskSolutions.
La table d'ou sont issus les champs du formulaire s'appelle donc tblSAPHelpdesk.
la requete aue j'ai pris en exemple s'appelle qryAssignedtoPaul
Et la macro que j'utilisais dans cet exemple s'appelait mcrSapassignselectorPaul


Si j'ai bien compris, avec la requete qryAssignedtoPaul, ma macro mcrSapassignselectorPaul ne sert a rien et est donc inutile.
Et effectivement, j'ai autant de requetes que de boutons
(ex: un bouton Thomas et une requete qryAssignedtoThomas, un bouton John et une requete qryAssignedtoJohn, ...).

Initialement, il y avait deja une requete SQL pour chaque personne mais ils ont utilise une macro a la place et on mis les requetes de cotes... ils ne les ont pas utilise...


Mais...
Que voulez vous dire par beaucoup de valeurs ? Parce qu'il y a beaucoup de champs ?
Ce n'est pas un probleme...
Je ne sais pas si je l'ai bien explique auparavent, mais ce formulaire presente divers enregistrements que l'on fait defile (apres avoir selectionne un bouton d'un employee) avec des boutons de navigation (enregistrement precedant, enregistrement suivant...).
Ces enregistrements corespondent en fait a un probleme qu'un employe de l'entreprise a poste dans cette base de donnees appelee HelpDesk 2007 (une aide de bureau sous forme de base de donnee). Et les boutons avec les noms correspondent aux employees du service informatique a qui l'on peut assigner le probleme pour qu'ils le resolvent... Chacun de ces problemes contiennent donc une foulle d'informations :
"""
un numero d'identification,
une date de depos du probleme,
le nom de l'employe qui a ce probleme,
un resume de ce probleme,
le type de demande,
le department ou se situe le probleme,
un numero de priorite (pour determiner l'urgence du probleme)
transaction code (je n'ai pas reussi a traduire ce que c'etait)
menu path
Un message d'erreur (s'il y en a)
Une description du probleme
transactionel Data
des informations supplementaires
le status du probleme
la date ou il a ete assigne
le nom de l'informaticien a qui le probleme est assigne (champs AssignedTo)
la date prevus pour resoudre le probleme
la date ou il a ete resolu (champs CompletedDate)
l'heure
Le test des donnes
le test avec le client
la solution
Menu Path for configuation
Le numeros du transport
la necessite de transporter l'ordinateur ayant un probleme (case a cocher)
"""
(il y en a plusieurs que je n'ai pu traduire)...
Voila donc tous les champs de mon formulaire...

Donc voila tous les champs qu'il y dans le formulaire...

Qu'est ce que vous avez besoin d'autre ?
0
Bonjour,

Bon, j'essaie de le dire autrement :

Vous avez un code VB :

Private Sub cmdPaulws_Click()
On Error GoTo Err_cmdPaulws_click
Dim stDocName As String
stDocName = "mcrSapassignselectorPaul"
DoCmd.RunMacro stDocName

Qui appelle (quatrième ligne) un filtre "mcrSapassignselectorPaul", dont la partie que je vois ne sert à rien. Je vous suggère donc de remplacer ce nom "mcrSapassignselectorPaul" par celui de la requête SQL dont je n'ai pas encore su deviner le nom. Ca pourrait être "qryAssignedtoPaul".

Il est possible que ça ne marche pas, parce qu'elle peut faire des choses que je ne vois pas (je pensais qu'elle pourrait éliminer des attributs, mais à ce que vous dites ce n'est pas le cas). Si ça ne marche pas essayez alors de supprimer purement et simplement le critère ci-dessous de l'endroit où vous l'avez trouvé ;

[tblSAPHelpdesk]![AssignedTo]="Paul Machin" And IsNull([tblSAPHelpdesk]![CompletedDate])

Manu
0