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 12/04/2011, 09h47   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
Par défaut mise a jour de listes déroulantes liées

Bonjour.

je travaille sur un projet AC2007, malheureusement j'ai un petit problème de mise à jour de mes listes déroulantes.

d'une part, je dispose d'une table nommé tbl_emetteur.
elle contient entre autres 2 variables: nom_emetteur et poste_emetteur.
ex de la table.
nom_emetteur; poste emetteur
DUPONT; ouvrier
DUPONT; détective
DUPONT; inspecteur
MARC; O'polo
JACQUES; ousi

d'autre part se trouve mon formulaire (frm_constat_hse). Dans un premier champs, nous avons nom_emetteur.
Afin de bien différencier les émetteurs qui ont le même nom, j'ai une 2ème liste déroulante qui spécifie le poste de la personne ciblé.

Grace au post de Flakedo, a son aide et celle de Zoom61, j'ai bien progressé mais j'ai un bug que je ne saisis pas.

1er liste déroulante:
vous déroulez la liste, on voit le nom suivi du poste de chaque émetteur.

la, pas de problème, tout le monde apparait, avec le bon poste. je sélectionne un emetteur, le champs prend le nom de l'émetteur.

2ème liste déroulante:
lors du 1er passage, la liste se met correctement a jour en fonction du nom.
si je choisis MARC, je aurai uniquement O'polo en choix de poste.
si je choisis DUPONT, j'aurai les 3 postes associés "ouvrier", "inspecteur", détective";
1er bug
quand je sélectionne un poste, le champs reste vide. (quand je dis vide c'est "null" et pas "")
2ème bug, si je me suis trompé d'utilisateur. et que je rechange le nom, en passant de DUPONT a MARC, la liste de poste ne se met plus a jour.
je reste sur les 3 postes des DUPONT.

Je vous mets mon code SQL, ainsi que le code "après MAJ".

*lstdrl = liste déroulante.
Code :
1
2
3
4
##CODE lstdrl_nom_emetteur
SELECT tbl_emetteur.id_emetteur, tbl_emetteur.nom_emetteur, poste_emetteur
FROM tbl_emetteur
ORDER BY tbl_emetteur.[nom_emetteur], tbl_emetteur.[poste_emetteur];
Code :
1
2
3
4
## CODE lstdrl_poste_emetteur
SELECT tbl_emetteur.poste_emetteur
FROM tbl.emetteur
WHERE (((tbl_emetteur.nom_emetteur)= [forms]![frm_constat_hse]![lstdrl_nom_emetteur]));
Code :
1
2
3
4
5
6
7
8
9
10
## AFTER UPDATE
Private Sub lstdrl_nom_emetteur_AfterUpdate
       Me.Requery
       Me.refresh
End Sub
 
Private Sub lstdrl_poste_emetteur_AfterUpdate
       Me.Requery
       Me.refresh
End Sub
** si faute de syntaxe, cela vient surement de moi, j'ai du recopié le code.

J'espère avoir été assez clair.
ps: je vais essayer de mettre la table de relation, mais pour l'instant, j'arrive pas a m'envoyer de mail.
Merci d'avance a tous.
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 11h27   #2
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
j'ai résolu le 1er bug.
Je récupère bien la variable poste_emetteur, maintenant.

par contre, au niveau de la mise a jour de la liste, je ne trouve pas.
(quand je parle de mise a jour a de liste, je parle de changer le nom de l'emetteur une 2ème fois).

j'ai rajouter Me.requery et Me.refresh dans les évènements des 2 listes déroulantes pour "Si modification" et pour "Sur changement".
mais ca ne marche pas plus.

Quelqu'un aurait une idée? S'il vous plait?
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h51   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
je progresse tout seul et très lentement.

alors maintenant le nouveau bug.
j'ai une liste déroulante de nom_emetteur.

a coté de la liste un bouton qui renvoit vers le formulaire ajout_emetteur.

si je ne déroule pas la liste déroulante, que je vais directement dans le formulaire ajout_emetteur, que j'insere une personne dans la table. en revenant dans la liste déroulante, le nouveau nom apparait.

Mais si je déroule la liste avant d'aller dans le formulaire, alors la mise a jour ne se fait pas....

Quelqu'un a une idée. j'ai collé "me.requery" et "me.refresh" sur clic, avant MAJ, après MAJ, si modification, sur changement, ca marche pas...

Quelqu'un s'il vous plait?
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h00   #4
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Je lis ça tranquillement et je vois si je peux t'aider on dirait du HSE....ça tombe bien j'ai un DUT HSE dans mes bagages ^^
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h04   #5
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
c'est exactement ca.
Mon maitre de stage a mis en place un système de constat HSE, dans son entreprise.

chaque employé peut faire un constat.
il y a une cotation pour le port des EPI par exemple. 1 à 3 bien.
A à C pas bien.
bref il y en 6000 par an, dans l'entreprise, il veut donc une base donnée pour exploiter les résultats et une application pour les ajouter facilement.
(pour l'instant, il fait du copier coller, dans 4 ou 5 fichiers excel...)
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h23   #6
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Déjà je remarque un détail qui me chagrine....
Dans ta première liste tu dois avoir 3 fois Dupont je suppose....Ne serait-ce pas mieux de ne l'avoir qu'une seule fois ? le champ id_emetteur correspond à quoi ? Quand tu as décrit ta table, tu n'en fais pas mention...Est-ce que ce champ est unique pour chaque opersonne ? ou pour chaque couple nom/poste ?

Perso j'aurai fait une table T_employes(id_employe, nom, prenom, etc.) et une table T_postes(id_poste, intitulé). Et pour les relier, une table T_affectationsPostes(id_employe,id_poste)

De cette manière, un employé peut avoir 1 ou plusieurs postes et un poste peut être attribué à 1 ou plusieurs employés

Je continue de regarder

EDIT : pour mettre à jour une liste déroulante :
ça devrait t'aider déjà
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h35   #7
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
alors ca c'est original, un étudiant avec des problèmes de conception...... -_-

le problème est que je ne suis pas super a l'aise sur ACCESS, et j'ai l'impression que plus il y a de tables plus ca va être complexe.

j'essaie de voir le code pour la mise a jour de la liste.
j'édit en fonction du résultat. ^^

Echec :
En termes de code, sur ma liste déroulante, j'ai ceci.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
##CODE lstdrl_nom_emetteur
SELECT tbl_emetteur.id_emetteur, tbl_emetteur.nom_emetteur, poste_emetteur
FROM tbl_emetteur
ORDER BY tbl_emetteur.[nom_emetteur], tbl_emetteur.[poste_emetteur];
 
## AFTER UPDATE
Private Sub lstdrl_nom_emetteur_AfterUpdate
       Me.Requery
       Me.refresh
End Sub
que j'ai transformé en ceci.
Code :
1
2
3
4
5
6
 
## AFTER UPDATE
Private Sub lstdrl_nom_emetteur_AfterUpdate
       Me.nom_emetteur.Requery
       Me.nom_emetteur.Refresh
End Sub
pourquoi donc? peux tu réexpliquer ?
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h38   #8
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Justement ^^ Plus il y a de tables et plus c'est facile : principe de l'unicité. Si tu fais une base de données, c'est pour éviter les informations redondantes : gain de place et de lisibilité Et pour coder après tes petites macros, c'est beaucoup plus facile (et pour demander de l'aide aussi :p)
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h57   #9
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
je suis en train d'essayer de repenser toute la conception de mon projet, mais c'est affreux, je suis completèment perdu... ><

quand j'arrive chez moi, je te post mes tables actuellements avec mes relations et tout et tout.

En attendant... je fais une nouvelle éboche...
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 16h09   #10
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Pour tes listes déroulantes, tu peux t'inspirer de ce petit tuto très bien fait Si tu veux voir ce que ça donne, je peux t'envoyer une base exemple avec les 3 tables que je t'ai citées et un formulaire contenant les 2 listes déroulantes liées entre elles. C'est-à-dire que quand tu choisis un poste, la liste des employés répondant à ce poste se rafraîchit. Et quand tu choisis un employé, la liste des postes correspondant se rafraîchit.
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 16h14   #11
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
Paidge, tu es une perle. ^^ merci
je peux te soumettre ma conception quand je l'ai fini ? =)
tu pourras me dire ce que tu en penses.

ps: ouai interessé par ton exemple avec 3 tables. me dis pas que tu l'as fait pour moi... ?
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 17h17   #12
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Sissi bien sûr ça m'a pris 5min.
Envoies-moi ton email en privé. Je t'ai envoyé un MP mais apparemment tu n'as pas été notifié
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web