|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour à tous,
J'ai un form qui me récapitule l'état des commandes en cours et quel employé travaille sur quelle commande. Or je peux avoir 2 employés qui travaillent sur la même commande, donc j'ai fait un bout de code qui "ajoute" les noms d'employés travaillant sur la même commande, la variable s'appelle "empact" Par exemple je peux avoir "jean" et "paul" qui sont sur la même commande et le code va me générer "jean paul". Maintenant je voudrais afficher ce résultat de code "empact" dans le copntrole "empactif" du form. J'ai une variable EC qui est la reprise du numéro de commande de l'enregistremùent actuel que le form affiche et dans ma requete le champ qui contient cette ref de commande s'appele [code] Ca marche mais ca me l'affiche dans TOUS les enregistrements du form et pas seulement dans celui ou le numéro de commande "EC" matche bien le champ de la requete [code] Merci d'avance de votre aide Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
Bonjour,
Je ne vois pas bien le rapport entre ce que tu veux faire et le code que tu mets en place. Si tu souhaites ajouter un utilisateur au champ Attrib de l'enregistrement courant ceci devrait suffire. Code :
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour,
En fait je veux que le champ calculé me concatène des employés en se basant sur cette requête. attrib.....employe 2159......PM 2158......DR 2179......AF 2159......DR Ici par exemple l'employé "PM" et l'employé "DR" travaillent tous les deux sur la commande 2159 je veux que dans le form qui me liste les commandes en cours à la 2159, dans la case "empactif" j'ai "PM DR", donc je dois scanner les enregistrements de la requête un par un, puis quand je vois que le champ attrib correspond à la commande en cours (par ex la 2159) je mets dans une variable "PM", je continue à scanner et quand j'arrive au 2° enregistrement de la 2159 je rajoute " DR" pour avoir un résultat "PM DR" Je ne veux pas les rajouter à la main mais que ca se fasse tout seul avec la requête. En fait la partie calcul se fait bien mais c'est la partie attribution qui déconne... Merci de l'aide |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
Avec ce code effectivement cela ne peu que déconner.
1- on ouvre la requete de consultation 2- on recherche l'enregistrement 3- si on trouve on stocke dans le champ du formulaire. 4- on relance la recherche Code :
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
||
|
10
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Merci, j'ai adapté ton code à ma base (je fais des employés actifs et pas des emplois fictifs
j'ai une erreur sur le rst.findnext de type "argument non facultatif" Voila le code que j'obtiens, dans la ligne 4 on est bien d'accord sur le fait que attrib est un champ de la requete alors que numéroauto est le controle du form qui reprend le numéro de la commande, donc je cherche bien une condition "attrib=numeroauto" avant de stocker le nom de l'employé. Code :
|
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
C'est ça d'écrire le code de tête, on oublie toujours un truc.
![]() Code :
rst.findnext "attrib=" & Me.NumeroAuto Cordialement, Ps : inutile de faire de la citation, nous ne sommes que 2 dans ce fil.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Salut,
Ben ca fait pareil, ca me met le champ calculé dans tous les enregistrements du form (en mode continu) et pas seulement sur celui en cours.... il faudrait arriver à lui dire que le champ calculé va dans l'enregistrement Code :
where req-smoEnCours.attrib=me.numeroauto Merci d'avance |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
Bonjour,
ça te met toujours l'erreur "argument non facultatif" sur rst.findnext ? Normalement fait toujours référence à l'enregistrement courant. Je ne vois pas trop pourquoi il te l'applique partout. A moins que NumeroAuto ne renvoie pas ce qu'il faut. Tu devrais faire une exécution pas-à-pas pour vérifier ce qu'il fait.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
L'argument non facultatif a été résolu en remettant les indications après le findnext donc ca c'est bon.
J'ai mis le bout de code en "sur clic" du champ indépendant "empactif" dans le sous-form qui contient aussi numeroauto... Je vais faire un pas à pas et je vois ce que ca dit. On est pas loin du bout Merci |
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
On teste ca
Code :
Tout marche comme prévu mais ca écrit le résultat au fur et a mesure dans tous les enregistrements du form...bizarre parce que le numauto de la commande sort bon à chaque fois.... Qu'est ce que je peux tester ? Merci UPDATE : C'est vraiment un problème d'attribution parce que si je lance le calcul avec une autre commande (ou je n'ai pas d'employé actif) ca efface tous les champs, donc le calcul de qui fait quoi fonctionne très bien mais c'est la partie attrib qui déconne... Si on stocke ce calcul dans une variable "toto" Code :
Me.empactif = Me.empactif & " " & rst.Fields("code") Code :
where me.numeroauto = REQ-MOENCOURS.attrib Merci |
||
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Avec la variable ca donne pas mieux...
Code :
Je sens que je vais finir par le faire comme un cochon et stocker dans une table meme si c'est mal de stocker des champs calculés, mais bon, quand ca veut pas.... |
||
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
Je pense plutot à un problème de conception sur l'ihm.
Peux-tu poster cette partie (table et formulaire) ? Que j'y vois plus clair.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Ben la base fait 18Mo (sans les tables qui sont séparées....)
Je vais essayer d'expliquer la structure. La table MO regroupe les infos de main d'œuvre Numero (index numero auto) employé (matricule employé numérique) datedebut heuredebut datefin heurefin attrib (numéro de la commande client) usinage (numéro de la pièce a usiner si l'opération n'est pas une commande) j'ai un form "commandes clients en cours" qui contient un sousform "liste des commandes en cours" et dans ce sous form j'ai une liste des commandes en cours avec un champ "numeroauto" qui est le numéro de la commande client Dans ce sousform un champ qui m'affiche quel employé travaille sur quelle commande (parce que sinon ils s'y perdaient....), au départ un truc facile qui allait dans la table MO et qui reprenait l'employé travaillant sur la commande=numeroauto mais quand j'ai eu 2 employés sur la même commande ca n'en affichait qu'un. Donc l'idée de faire un controle indépendant "employeactif" qui listerait tous les employés dans une requete de mo en cours (donc avec une date de début mais pas de date de fin) et qui me concaténerait "AB" + "BC" pour affichier un champ "AB CD" Voila le code de la requete de selection de la main d'oeuvre en cours Code :
Par contre le problème théorique que je vois est que ce contrôle indépendant n'est par définition pas stocké nulle part, donc ca vient peut être de la... Si je le stocke dans la table MO ca pourrait marcher mais c'est pas super propre comme solution.... Merci du coup de main en tout cas.... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com