Tri alphanumerique access 2003

beeperbambou Messages postés 3 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 3 octobre 2010 - 3 oct. 2010 à 22:24
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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 !)

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
Rejoignez-nous