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 30/03/2011, 15h52   #1
Invité de passage
 
Inscription : mars 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 7
Points : 2
Points : 2
Par défaut [ETAT] Zone de texte n'affiche pas la valeur demandée

Bonjour,

Actuellement stagiaire je dois développer une petite application sous access permettant de gérer des saisies d'heures de travail.

Pour cela j'ai créé un formulaire qui permet d'ajouter un enregistrement dans une table "heures" et qui contient le nom de l'entreprise, le nom du salarié, le nom de la manifestation sur laquelle il a travaillé, le numéro de la semaine où il a travaillé.

Ensuite j'ai créé un second formulaire qui me permet de faire une requête SQL sur la table "HEURES".

Cette requête récupère et sélectionne le nom de l'entreprise, le nom du salarié, les semaines travaillées, les manifestations et le nombre d'heures que chaque employé a fait pour les différentes manifestations.
Après avoir créé la requête le formulaire créé dans le même temps un Etat ou est affiché le résultat de la requête comme ci dessous :


Tout fonctionne bien, mais il y a juste un problème : la textbox censée faire apparaitre le nom du salarié, fait en fait apparaitre le code du salarié qui est la clé primaire de la table SALARIE.
Je n'ai pas réussi à afficher le nom du salarié, il ne me manque que ça pour finaliser mon application et je ne comprends pas pourquoi ça fait cela.

Voici les relations entre les tables :


Merci d'avance ; ).
Xari_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 17h45   #2
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 279
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 279
Points : 478
Points : 478
Par défaut Solution

C'est le fait d'avoir remplacé le champ zone de liste déroulante dans l'état par un champ texte qui est à l'origine de cela. Si tu remplaces ce champ par le champ Zone de liste déroulante qui est proposé dans la liste des champs disponibles en mode création, tu auras bien, dans l'état, le nom du salarié choisi dans ton formulaire et non le numéro correspondant à la clé primaire.

Il y a sans doute moyen de faire autrement (tout cela étant dû au fait que la zone de liste au départ comporte une colonne cachée où figure la clé primaire) mais c'est tout simple à faire comme cela, alors pourquoi chercher à faire compliqué.
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 18h22   #3
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
RobiPMS a bien raison; je te renvoie ta base.
Dans la table HEURES, tu as créé nom_sal comme ceci:
Afficher le contrôle:Zone de liste déroulante
Origine source:Table/Requête
Contenu:SELECT SALARIE.code_sal, SALARIE.nom_sal FROM SALARIE;
Tu ne devrais donc pas changer de type de contrôle

@+
Fichiers attachés
Type de fichier : rar saisie_heure.rar (32,9 Ko, 3 affichages)
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 21h11   #4
Membre du Club
 
Emmanuel
Inscription : novembre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Emmanuel

Informations forums :
Inscription : novembre 2010
Messages : 49
Points : 66
Points : 66
Bonsoir à tous.

Quelque chose me chiffonne.
Puisque tu as créé un formulaire pour saisir de nouveaux enregistrements dans ta table HEURES, pourquoi ne pas mettre tes zones de listes déroulantes qui vont bien dans ce formulaire et laisser les champs de ta table déclarés en zone de texte ?

Saisir des données directement depuis une table me semble très dangereux. Un utilisateur non-averti peu à tous moments supprimer, modifier des données par mégarde et/ou qui sait .....

A mon avis elles doivent totalement inertes et seulement accessibles depuis des formulaires. De ce fait, déclarer des zones de liste dans une table ne me paraît pas judicieux et d'ailleurs ça complique la tâche plus loin... la preuve.

Je me suis permis de modifier la table HEURES en supprimant les ZDL et .... ça fonctionne.

A bientôt.
Fichiers attachés
Type de fichier : rar saisie_heure.rar (81,5 Ko, 1 affichages)
Dixies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 08h49   #5
Invité de passage
 
Inscription : mars 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 7
Points : 2
Points : 2
Merci à vous trois pour vos réponses,
j'avais finalement réussi avec la méthode de Robi/keita en trifouillant un peu =).

Dixies : Je n'avais pas pensé à ça, mais de toute façon la base ne sera pas accessible car je compte faire des enregistrements à partir d'une application java, on ne pourra pas modifier directement dans la base =).
Xari_ 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 03h35.


 
 
 
 
Partenaires

Hébergement Web