Access 2007 comment trier carnet d'adresse des contacts par nom

Résolu/Fermé
Nouveau79 - 17 mai 2013 à 21:53
 Nouveau79 - 26 mai 2013 à 22:31
Bonsoir à tous et à toutes,

Après avoir recherché sur internet sur divers forums, je n'ai pas trouvé la réponse à ma question, c'est pourquoi je me permet de la poser ici.

Voilà, je suis en train de faire un fichier client sous forme de base de données avec Access 2007. Jusque là tout se passe bien. Cependant une chose me chiffonne, quand je clique sur "carnet d'adresse des contacts" pour avoir le listing de tous mes clients, ils sont bien triés par ordre alphabétique par nom, mais c'est le prénom qui est affiché en premier !

Par exemple ça me fait :

Andrew BONJOUR
Mael BONNANNEE

Je voudrais donc savoir comment faire pour que ce soit le nom (critère selon lequel ils sont classé d'ailleurs) qui soit affiché en premier comme ça :

BONJOUR Andrew
BONNANNEE Mael

Merci d'avance pour vos réponse, car j'ai essayé de bidouiller dans Access mais sans succès, et je commence à m'arracher les cheveux dessus !
A voir également:

16 réponses

Bonjour,
As-tu regardé comment est organisé ta requête sousjacente? Les champs et les champs calculés?
Et pareil pour les contrôles de ton formulaire (ou états)?
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
18 mai 2013 à 17:57
Bonjour
As tu 2 champs ; champs nom; champ prenom?
Si oui, tu inverses l'ordre des champs dans ta requete.
Tu mets nom en premier et prénom en second et tu tries sur nom.
Autrement en SQL; faire abtration du prenom mais attention au prenom composé.
0
Bonjour Castours,
Tout porte à croire qu'il y ait du champs initiaux ordonnés, et un champ "calculé" ou "concaténé", "Prénom "&" Nom".
D'accord avec toi, il suffit d'inverser les champs dans le champs concaténé.
0
@Tessel75 : Merci pour votre réponse, mais vous parlez de manière un peu trop pointue pour moi malheureusement ! Je ne comprends pas ce que vous voulez me dire ...

@castours : Non, il n'y en a qu'un seul intitulé "Nom du contact" qui affiche le nom et prénom dans un seul, et je n'arrive pas à les classe par nom de famille en premier...
0
Bonsoir,
"Concaténé" veut dire que 2 champs sont accolés pour n'en faire qu'un seul. Par exemple, si tu as un champ "Nom" et un champ "prénom", tu peux "concaténer" les 2 champs pour avoir un seul champ "NomPrénom" que tu opéreras en écrivant dans la requête dans un champ vide, NomPrénom:Nom & Prénom ce qui te donnera pour "Dupont" et "Jean", "DupontJean" (Il faut alors prévoir les espaces, si tu veux "Dupont Jean".

Pour en revenir à ta demande, tu écris:
" ils sont bien triés par ordre alphabétique par nom, mais c'est le prénom qui est affiché en premier ! "
Je disais, comme Castours, que cela n'est possible que si au départ tu as 2 champs triés par ordre alphabétique de nom, et de prénom. Le champ "concaténé" (ou des 2 champs accolés si tu préfères) ne fait que te présenter le résultat d'une manière particulière (Prénom &" " & Nom).
Si tu en veux une autre, il te faut faire la concaténation Nom &" " & Prénom
En espérant avoir été plus explicatif, Bonne suite
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
20 mai 2013 à 19:24
Bonjour Tessel75
Avec l'aide du forum sur developpez.com, une personne m'a fourni une solution qui fonctionne tres bien avec des prénoms composés avec espace ou trait d'union.
Si cela t'interesse je la mets sur le site
0
Bien sûr. Merci!
Je me suis fait une fonction qui me fait une opération du même genre. Je pourrais comparer.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
21 mai 2013 à 00:18
0
Bien reçu. Intéressant mais comme je le disais, pas vraiment simple, en tout cas pas pas à la portée d'un débutant.
Si tu es intéressé, je peux t'envoyé le code que j'avais fait qui est un petit peu du même acabit, à cela près qu'il s'agissait d'extraire les initiales d'un champ, en l'occurrence utilisé pour les prénoms, y compris les prénoms composés avec plusieurs initiales. A plus tard.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
22 mai 2013 à 00:15
bonjour
tu peux, c'est toujours interessant a connaitre
0

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

Posez votre question
@Tessel75 : D'accord, merci beaucoup pour ces explications. Par contre, je m'excuse encore, mais comment puis-je faire pour modifier ces "champs" ?

Je suis vraiment débutant sur Access, et quand je vais sur carnet d'adresse des contact, je ne sais pas comment modifier ces fameux champs.

Je m'excuse encore une fois, mais j'aimerais comprendre et aucun résultat ne parle de cela quand je recherche sur le net...
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
20 mai 2013 à 11:36
Bonjour
Avoir la certitude qu'il y a les 2 champs, Nom et Prénom dans un table.
Si dans la table il y a qu'un seul champ qui enregistre le prénom et le nom, il faut une requete sql extrait le prenom puis le nom.
Là je ne sais pas faire
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
20 mai 2013 à 11:37
Combien de contact as tu dans ta table?
0
"Si dans la table il y a qu'un seul champ qui enregistre le prénom et le nom, il faut une requete sql extrait le prenom puis le nom"
La seule solution envisageable est compliquée. Il faut extraire le nom par une formule de type "Gauche("NomChamp", n)" ou "Droite("NomChamp", n)", avec "n" variable par délimitation de la longueur du nom, en étant sûr qu'il n'y a pas de noms composés sinon prise en compte des "-". En un mot, pas infaisable mais "le bordel"
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
20 mai 2013 à 18:26
bonjour
Si tres peu d'enregistrements ajouter les deux champs et refaire la saisie
0
Bonsoir Nouveau!
Au point où nous en sommes, plutôt que tourner autour du pot depuis 3 jours, le plus simple serait tout de même que tu nous dises clairement la structure de ta (tes) table et celle de ta requête. Parce que nos supputations..., de Castours et de moi-même, même avec la meilleure volonté du monde, aucun de nous trois n'avance pas beaucoup.
0
Bonsoir,

Pardonnez moi, il est vrai que j'aurais dû vous fournir une ou plusieurs captures d'écran depuis le début, je vais tâcher de trouver un moment soit demain, soit mercredi pour le faire, je pense que c'est ce qu'il y a de plus simple.

Veuillez m'excuser encore une fois pour mon ignorance, je vous fait parvenir ça le plus vite possible.
0
Bonjour !

Pardonnez pour le retard de la réponse, mais j'ai enfin pu vous faire une capture d'écran pour vous montrer le problème :

http://img402.imageshack.us/img402/5646/exemplen.jpg

Comme je vous le disais, les contacts sont bien classés par nom de famille, mais c'est le prénom qui s'affiche en premier.

Voilà, en espérant que ça vous éclaircisse un peu !
0
Bonjour,
Ton envoi est bien parvenu, néanmoins on n'est pas davantage éclairé parce que la question n'était pas quant au résultat que dans sa construction. Vous envoyez la vue d'écran d'un état, or la question fondamentale est celle de la requête source et de la (les) table avec lesquelles cet état est construit.
Cela dit, cette vue d'écran peut confirmer ce qui a été dit plus tôt, à savoir qu'il suffirait d'inverser les champs "[Prénom]" et "[Nom]" dans la requête source.
0
Ah mince !

Du coup ma question est, comment faire pour trouver et afficher cette fameuse "requête source" ?
0
Bonsoir,
Très simple:
1) Ouvrir l'état en mode CREATION, soit directement, soit l'ouvrir normalement puis Onglet Accueil / Affichage (à l'extrême gauche) / Céation (Icône avec l'équerre)
2) Cliquer le petit carré tout en haut à gauche qui devient noir, puis click droit et Propriétés de l'état (tout en bas de la liste déroulante)
3) Fenêtre des propriétés / Onglet Données / Propriété Source (1ère ligne)
4) Sur cette ligne, à l'extrême droite Bouton avec "..."
5) Mettre l'écran à la dimension pour qu'on voit la maximum de données et de tables + Vue d'écran
6) envoyer

Cela devrait suffir pour le moment.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
25 mai 2013 à 08:33
Bojour
Un complement
Soit en source tu trouves la requete, soit le nom d'une table.
0
Bonjour à vous deux, alors tout d'abord, merci pour l'explication qui m'a permis de trouver ce dont vous me parliez depuis le début, à savoir la fameuse requête !

Ensuite je ne sais pas quel champ modifier, donc je préfère vous demander avant, étant donné que j'ai passé beaucoup de temps à faire ce fichier, je n'ai pas envie de faire une bêtise et de le corrompre ! Donc voici les captures d'écran, la première :

http://img35.imageshack.us/img35/6110/demande.jpg

et la deuxième :

http://img713.imageshack.us/img713/9753/demande2.jpg

Je crois d'après ce que vous m'avez dit qu'il faut que je modifie ce qu'il y a dans la deuxième capture d'écran, mais je n'en suis pas certain.

Bien cordialement.
0
A la bonne heure; Bon encore une demande. Comme ce n'est pas très visible, il faudrait que vous envoyez la copie in-extenso des 2 lignes "
ClasseSous:VraiFaux(....  etc.."  
NomDuContact:VraiFaux(... etc ...
"
Cela se fait facilement par Copier/Coller directement sur CCM
Merci
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
Modifié par castours le 25/05/2013 à 15:15
bonjour
Dans ce lien tu trouveras une base fichier adresse.
Dans les etats, tu trouveras un exemple de tri sur nom ,sur prénom et par commune.
https://www.cjoint.com/c/CEzpksS4QBK
0
Bonsoir, alors voici la fameuse copie de ces deux lignes. La première :

Classer sous: VraiFaux(EstNull([Nom]);VraiFaux(EstNull([Prénom]);[Société];[Prénom]);VraiFaux(EstNull([Prénom]);[Nom];[Nom] & ", " & [Prénom]))

et la seconde :

Nom du contact: VraiFaux(EstNull([Nom]);VraiFaux(EstNull([Prénom]);[Société];[Prénom]);VraiFaux(EstNull([Prénom]);[Nom];[Prénom] & " " & [Nom]))

Comme je vous disais, j'hésite sur laquelle je dois éditer, et comme je n'ai pas trop de connaissances avec ce genre de programmation, je préfère vous demander avant de faire une bêtise.

Bien cordialement.
0
Bonsoir,
La question initiale était donc:
"Je voudrais donc savoir comment faire pour que ce soit le nom (critère selon lequel ils sont classé d'ailleurs) qui soit affiché en premier "

Alors, essayez pour le champ [Nom du contact], en copiant/collant la totalité de la ligne ci-dessous à la place de l'ancienne:
Nom du contact: VraiFaux(EstNull([Nom]);VraiFaux(EstNull([Prénom]);[Société];[Prénom]);VraiFaux(EstNull([Prénom]);[Nom];[Nom] & " " & [Prénom])) 

Avec cette dernière ligne corrigée, vous devriez obtenir ce que vous vouliez.
Pour le reste, présentation de l'état et autres, ne changez rien, au moins pour le moment, les autres champs devraient suivre. Même s'il y avait mieux et plus simple à faire pour écrire cette requête.
Merci de dire si cela convient comme cela, sinon ... vous connaissez le chemin...
Bonne suite
0
Alors tout d'abord, merci beaucoup pour votre patience, car j'ai été maladroit dans ma question, et c'est vrai que j'aurais pu être plus clair.

Cela étant dit, merci infiniment, car cela fonctionne à merveille.

Alors encore une fois, merci pour tout, vous m'avez vraiment sorti du pétrin !
0