|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Bonjour à tous !
J'ai un petit (gros pour moi) problème sur ma BDD Access: J'ai dans une table un champ qui dans le formulaire aparait comme une liste déroulante avec 4 choix. Mon but est de récupérer la donnée dans cette liste déroulante, puis établir (je suppose) une requête qui dit: Si donnée Liste déroulante = "mot de la liste déroulante" Alors faire une requête d'ajout (d'un autre enregistrement) sur une table spécifique via le bouton "aller sur la table". Est ce que cela est faisable ? Merci d'avance ! Bien cordialement |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Tout est faisable (ou presque) il suffit de bien définir ce que tu souhaites faire. Pour une requete : Code :
SELECT champ1, champ2 FROM table WHERE champ1='mavaleur'; Pour déclencher une action après le choix d'une liste il faut utiliser les événements (voir ce tuto pour comprendre comment ça fonctionne avant de te lancer) Pour exécuter des requetes via VBA (les événements) la commande : doit faire l'affaire. Tu dois procéder de la manière suivant pour intégrer une requete dans VBA. Toujours commencer par créer ta requète avec le générateur (du moins tant que tu n'es pas parfaitement à l'aise avec SQL). Soit sauver la requete en tant qu'objet, si celle-ci ne contient pas de paramètres. Soit l'intégrer dans VBA (voir ce tuto http://cafeine.developpez.com/access...el/debugprint/) Puis l'exécuter avec la commande que je t'ai fourni précédemment. Cordialement,
__________________
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
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
J'avou avoir un peu de mal à tout saisir (j'avais déjà lu ce tuto lors de mes recherches)
Je vais essayer de faire quelque chose cette après midi tout en sachant que je ne suis pas bon (du tout) en code VBA, je te tiens au courant. En tout cas merci de cette réponse rapide. Bien cordialement |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
L'événement qui se déclenche après avoir choisi un élément d'un liste déroulante c'est Après MAJ (après mise à jour).
Pour récupèrer une valeur de la liste c'est : Où x est un indice numérotant la colonne et qui démarre à 0 (1ère colonne). Les colonnes cachées (0 dans Largeur colonnes) sont également comprises dans ces indices (heureusement !). Cordialement,
__________________
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
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Bonjour Loufab,
Voulant éviter le code VBA j'ai essayer (avec l'aide de tes conseils) de faire une requête d'ajout. Ma requête d'ajout (grace à une macro) s'active lorsque nous appuyons sur le bouton "Aller à la table suivante". Mon numéro de commande s'affiche directement, mais le problème c'est que ça rajoute non pas juste la commande que je viens d'enregistrer, mais toutes les commandes contenu dans ma table précédente (dans la table actuel). Faut il absolument que je passe par du code VBA pour arriver à mon but ? |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Tu peux utiliser les macros au lieu de VBA. Tant qu'il s'agit de chose simple à faire elles conviennent largement. C'est leur manque de souplesses qui font qu'elles sont boudées. Cela dit, je pense qu'il doit te manquer une condition Where. Peux-tu poster ta requete ? Cordialement,
__________________
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
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Ma requête:
Code sql :
|
||
|
|
00
|
|
|
#8 | ||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Effectivement un INSERT à partir d'un SELECT sans WHERE il prend toute la table (il fait bêtement ce que tu lui dis ). Pour preuve regarde ce que renvoi ton SELECT seul.Solution : Un Where dans ton Select. Code :
SELECT ... WHERE IdChamp=Forms!Monform!idChamp Si ça ne fonctionne pas force-le avec un avant ton insert Code :
Mon conseil : Avec des Select imbriquer, toujours faire un test de ce qu'il renvoi avant. Cordialement,
__________________
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
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Bonjour !
J'ai essayer avec le WHERE Mon code: Code :
Bien Cordialement |
||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Donc la clause PARAMETERS est nécessaire. Cordialement,
__________________
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
|
|
|
#11 | ||
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Alors, j'ai une erreur de syntax:
Code: Code :
Donc normalement, lorsque ma commande va fonctionner, cela va selectionner la commande que je viens de rentrer dans mon formulaire SAV, pour la mettre dans le Formulaire Enlèvement (et donc par extension, à la prochaine sauvegarde dans la table Enlèvement) ? |
||
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Ctrl + C sur le message box de l'erreur.
puis Ctrl + V dans ton prochain post. Merci !
__________________
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
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Il y a des crochets en trop.
au lieu de
__________________
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
|
|
|
#15 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Parfait j'ai reussi à l'enregistrer !
Par contre lorsque je test ma requête il me demande toujours de lui entré des paramètres. Je test quelques truc et je te tiens au courant! En tout cas merci de ton aide précieuse |
|
|
00
|
|
|
#16 | |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Alors alors, après quelque essais, il me demande toujours un paramètre;
l'info bulle exacte: Citation:
|
|
|
|
00
|
|
|
#17 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Si parameters utilise
Alors Where doit aussi utiliser Les 2 doivent être strictement égaux.
__________________
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
|
|
|
#18 | ||
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Code :
|
||
|
|
00
|
|
|
#19 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
A vérifier :
Le formulaire est bien ouvert et en fonctionnement quand tu exécutes la requete. Le formulaire se nomme bien Employé et la liste déroulante Commande. Cordialement,
__________________
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
|
|
|
#20 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 35 ![]() |
Alors, le formulaire est bien actif lors de ma requête, par contre, a la toute base, je voulais faire fonctionné ceci par une liste déroulante (non pas sur commande mais sur un autre champ)
Commande est un simple champs à remplir; et j'aimerais récuperer sa valeur qui va venir te mettre automatiquement dans le champs Commande d'une autre table. Je tiens à m'excuser de m'être aussi mal exprimé... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com