beeperbambou
Messages postés3Date d'inscriptionvendredi 8 septembre 2006StatutMembreDernière intervention 3 octobre 2010
-
3 oct. 2010 à 22:24
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
3 oct. 2010 à 23:40
Bonsoir,
je gère une bdd d'adresses postales (BDDA ADRESSES) sous access 2003 et galère avec le tri. Je souhaite faire le tri d'un champ de ma table (N°Adresse) à travers une requête. J'ai simplement indiqué Tri croissant mais je n'obtiens pas ce que je veux :
Le résultat est
1
1 A
13
19
2
3
J'ai un format de numérotation qui va de 0 à 2160 et parfois suivi de A,B,C maiq aussi Bis ou Ter. Pouvez vous m'aider ? Merci !! Ma saisie est faite sur le modèle 21 et non pas 0021 (malheureusement !)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 oct. 2010 à 23:40
Salut
C'est un problème de conception de base.
Si ton champ n'avait été que numérique, tu aurais pu utiliser la fonction Format pour ajouter les 0 manquant, mais avec des lettres, il te faut découper le champ avant de pouvoir faire un tri efficace.
Ton champ aurait dû être numérique et enregistrer les bis ou tiers dans un autre champ.
Sous Access, tu peux utiliser les fonctions du VB à l'intérieur des requètes SQL; ainsi Format tu permettra d'afficher le champs avec toujours le même format, donc permettant un tri correct.
Tu peux essayer ceci, mais pas sûr que Access sache gérer le Split dans une requète :
Select monChamp
From maTable
Order By Format(Split(monChamp, ' ')(0), '0000') & ' ' & Split(monChamp & ' ', ' ')(1)
Si tu ne connais pas Split, regarde dans l'aide.
Le format Split(...)(0) désigne le premier élément du tableau, Split(...)(1), le second élément.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)