Comprendre une formule

Résolu/Fermé
danièle21 - 31 janv. 2013 à 14:49
 danièle21 - 1 févr. 2013 à 12:47
Bonjour,
j'ai un formulaire contenant dans un champ des noms de personne et dans un autre les prénoms. j'aimerais créer dans un champ le nom combiné c'est à dire:
Nom: FAUVARQUE
Prénom: Marie
je veux que le nom qui s'affiche soit "Marie FAUVARQUE" contenu dans un seul champ. comment faire?
je travaille sur access 2007 et l ya une base de données Etudiants contenu comme modèle de base de données où ils ont combiné les noms à l'aide d'un code dasn une requête: le code est :

VraiFaux(EstNull([Nom]);VraiFaux(EstNull([prénom]);[Société];[Prénom]);VraiFaux(EstNull([Prénom]);[Nom];[Prénom] & " " & [Nom]))

pouvez vous m'aider à comprendre ce code afin que je puisse l'exploiter pour combiner mes valeurs?



6 réponses

blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
Modifié par blux le 31/01/2013 à 15:40
Salut,

en gros, on va voir si les champs sont remplis, si c'est le cas, on fait une concaténation.

Pour cela on utilise deux fonctions :

- VraiFaux(test;valeur_si_vrai;valeur_si_faux) qui renvoie 'valeur_si_vrai' dans le cas où test est vrai et valeur_si_faux dans le cas contraire
- EstNull(valeur) qui renvoie vrai si valeur est NULL et faux dans le cas contraire.

Ici, on fait un mélange des tests afin de voir si toute la zone est vide ou non.

On peut résumer ça de manière simple :

SI Nom est NULL (VraiFaux(EstNull([Nom])), on teste si Prénom est NULL (VraiFaux(EstNull([prénom])), si c'est le cas on met Société ([Société])dans le champ, sinon on ne met que Prénom ([Prénom])
Sinon (c'est que Nom n'est pas NULL), on teste si prénom est NULL (VraiFaux(EstNull([Prénom])), si c'est le cas on met Nom dans le champ ([Nom]), sinon c'est que Nom et Prénom sont renseignés, il suffit de concaténer (avec & en mettant un espace entre) pour les mettre dans le champ avec [Prénom] & " " & [Nom]...

C'est plus clair ?

A+ blux
 "Les cons, ça ose tout.  
C'est même à ça qu'on les reconnait"
0
un merci particulier blux!c'est vraiment plus clair. j'ai une autre question pour toi:

j'ai une table contenant les notes d'élèves par matière. en enregistrant les notes, on les lie à un élève par un matricule donc chaque note est liée à un matricule et chaque élève contenu dasn la table élèves possède un matricule.
je fais une requête pour que access puisse m'afficher l'une après l'autre les notes d'un élèves dans un même enregistrement:
donc mon instruction est:

Notes élève: VraiFaux([code].[note]=[e_code].[élève]; valeursivrai;valeursifaux)

c'est à dire vérifie que les champs [code] de la table [note] et [e_code] de la table [élève] ont la même valeur

ce que je veux dire comme valeur vrai c'est "affiche dans le champ toutes les notes relatives à ce code d'élève mais je sais pas comment le formuler peux-tu m'aider?
0
blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
31 janv. 2013 à 16:47
On ne peut pas de manière simple faire cette manipulation. En effet, les notes sont stockées dans des lignes différentes. Un SGBD est conçu pour travailler verticalement et non horizontalement.
0
et de manière complexe blux comment le faire? je suis prête à tout essayer pour le faire, c'est un des points capitaux de ma base de données
0
blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
Modifié par blux le 31/01/2013 à 17:09
Une fonction en VBA, qui va parcourir un recorsdet, concaténer les notes et les renvoyer côte-à-côte...
Mais pour ça, il faut déjà avoir le 'zoli dessin' des relations entre tables...
0
'zoli dessin' lol.
et si les tables n'ont pas de relations entre elles. j'ai fait mes relations sur mes formulaires pour éviter de bousiller ma base de données pas des manipulations quelconques. comment je peux m'y prendre pour que tu ailles au bout de cette réponse?j'aimerais vraiment trouver solution.
peux tu m'écrire ce code et me le transmettre?
nous supposons deux tables, la première
Elèves avec les champs nom prénom matricule
la deuxième
Notes avec les champs histoire, geo, français n_matricule

le champ n_matricule trouve ses valeurs dans le champ matricule.
je pense c'est tou l'important n'est ce pas?

P.S je ne connais pas trop VBA mais j'ai un note pad donc je pourrait convertir merci d'avance.
0
blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
Modifié par blux le 31/01/2013 à 17:41
Si tu as juste trois notes pour chaque élève, alors c'est beaucoup plus simple (d'où l'intérêt de connaitre le modèle de données).
Il faut utiliser la fonction Dlookup (ou rechdom, en français) trois fois pour aller chercher les bonnes notes. Regarde l'aide qui en parle. La fonction vraifaux n'aboutira à rien.

P.S je ne connais pas trop VBA mais j'ai un note pad donc je pourrait convertir merci d'avance.
???
0
et si j'ai plus de trois notes du genre 40 notes?
merci
0
blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
31 janv. 2013 à 18:05
Donne ton modèle de données...
0
comment je fais pour te le passer je n'arrive pas à coller un fichier pdf
0
blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
1 févr. 2013 à 10:33
Tu fais une copie d'écran et tu la colles ici :

http://www.xooimage.com/fr/
0
j'arrive pas à acceder sur le site
aurais tu un hébergeur de document google
0
blux Messages postés 25970 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 3 284
1 févr. 2013 à 12:33
j'arrive pas à acceder sur le site
Quel problème ?

aurais tu un hébergeur de document google
???

une copie écran des relations entre tables me suffit...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je dois me déplacer blux et je me reconnecterais uniquement demain j'espère te retrouver dès 7h30 si possible.j'aimerais vraiment trouver solution à cette question.
merci déjà pour ton aide et j'espère que ce sera plus beau encore demain quand j'aurais réponse à cette questioon
merci d'avance et bonne soirée.
bye bye
0
désolée blux je n'ai pas accès à tous les sites depuis mon pc c'est une connexion entreprise.j'ai essayé de décrirre ça dans la question DLookup que j'ai posée ce matin dans le forum access. vas y voir c'est détaillé là bas
0