Bonjour à tous.
Je dois combiner des informations venant de trois tables différentes et j'utilise pour cela deux requêtes union successives.
Pour simplifier, mes données peuvent être numérotées par : préfixeA ou préfixeA + suffixe ou préfixe B + suffixe. Elle doivent être donc réparties en trois tables car elles nécessitent d'être saisies dans des formulaires différents (A et B) incluant des sous-formulaires (les suffixes). Mes trois tables ont donc :
Première table : un champ "prefixeA", un champ "prefixeB" (inutilisé) et un champ "suffixe" (inutilisé)
Seconde table : un champ "prefixeA", un champ "prefixeB" (inutilisé) et un champ "suffixe"
Troisième table : un champ "prefixeA" (inutilisé), un champ "prefixeB" et un champ "suffixe"
Ces trois champs sont tous présents dans les tables, même inutilisés, pour permettre les requêtes union. Ils tous de type numérique, ce qui fait que, par exemple, "143" est avant "1043".
Mon petit dessin sera peut-être plus clair :
(Il y a une 4e table "tab_groupe" qui n'a pas d'incidence sur le problème)
Mon problème concerne le tri des données : il faut à chaque étage que les trois champs restent de type numérique, sinon "1043" se retrouverait avant "143"...
Je me suis rendu compte que ça marchait nickel (c'est-à-dire que les trois champs sont triés par type numérique) dans toutes les requêtes SAUF dans la dernière : la requête union "préfixeApréfixeBsuffixe"; l'ultime, mon saint Graal. Ici, les trois champs semblent avoir été transformés en type texte puisqu'il me classe "1043" avant "143" . Détail parlant : les données de ces trois champs sont toujours alignées à droite dans les premières requêtes (comme des nombres), mais deviennent alignées à gauche dans la dernière (comme des textes).
Mais POURQUOIIIIIII ?
Peut-être que c'est dû au fait que ce soit une requête union qui prend sa source dans une requête union, et que le type de données s'en trouve perdu et mis par défaut sur texte ? Quelqu'un saurait-il résoudre ça ?
Merci
Partager