Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2011, 12h15   #1
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Par défaut Liste Déroulante Formulaire avec conditionnelle

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
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 12h28   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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';
Le mieux étant de faire confiance au générateur de requete, il est bien quelque soit ton niveau.

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 :

Code :
currentdb.execute "INSERT...."
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 12h50   #3
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
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
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 16h52   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 10h02   #5
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
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 ?
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 10h52   #6
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 11h51   #7
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Ma requête:

Code sql :
1
2
3
INSERT INTO Enlèvement ( Commande )
SELECT [Suivi SAV].Commande
FROM [Suivi SAV];
En tout cas merci de tes réponses précises et rapide !
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 15h59   #8
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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
devrait résoudre le problème.

Si ça ne fonctionne pas force-le avec un avant ton insert

Code :
1
2
3
PARAMETERS [[forms]!Monform![idChamp]] Long;
INSERT ....
SELECT .... FROM .... WHERE idChamp=[forms]!Monform![idChamp];
Mais normalement il devrait l'encaisser sans.

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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 09h21   #9
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Bonjour !

J'ai essayer avec le WHERE

Mon code:

Code :
1
2
3
4
INSERT INTO Enlèvement( Commande )
SELECT [Suivi SAV].Commande
FROM [Suivi SAV]
WHERE Commande=Forms!Enlèvement!Commande;
Lorsque j'execute ma requête que ce soit en dehors ou dans mon formulaire, il me demande toujours un paramètre. Si je lui donne mon numéro de commande, tout fonctionne, mais si je ne lui donne rien, il ne récupère pas le numéro de commande que je viens au préalable de rentrer dans ma table SAV.

Bien Cordialement
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 10h27   #10
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 11h19   #11
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Alors, j'ai une erreur de syntax:

Code:

Code :
1
2
3
4
5
6
PARAMETERS [[Forms]!Enlèvement![Commande]] long;
 
INSERT INTO Enlèvement( Commande )
SELECT [Suivi SAV].Commande
FROM [Suivi SAV]
WHERE Commande=[Forms]!Enlèvement![Commande];

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) ?
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 11h26   #12
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 11h31   #13
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Citation:
Erreur de syntaxe dans la clause PARAMETER
Voili voilou !
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 14h28   #14
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Il y a des crochets en trop.

Code :
[forms]![NomForm]![Controle]
au lieu de

Code :
[[forms]![NomForm]![Controle]]
__________________
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 14h34   #15
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
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
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 15h00   #16
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Alors alors, après quelque essais, il me demande toujours un paramètre;

l'info bulle exacte:

Citation:
Entrer une valeur de paramètre

Formulaires!Enlèvement!Commande
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 17h42   #17
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Si parameters utilise

Code :
Formulaires!machin!Commande
Alors Where doit aussi utiliser

Code :
Formulaires!machin!Commande
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 09h15   #18
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
Code :
1
2
3
4
5
6
PARAMETERS [Forms]![Enlèvement]![Commande] long;
 
INSERT INTO Enlèvement( Commande )
SELECT Commande
FROM [Suivi SAV]
WHERE Commande=[Forms]![Enlèvement]![Commande];
Ils le sont pourtant bien :s
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 10h08   #19
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 10h52   #20
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 35
Points : 2
Points : 2
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é...
Trimatelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web