Est ce que ceci
Mid([Devis_Num],1,Len([Devis_Num])-4)
Peut être remplacé par cela ?
Left([Devis_Num],Len([Devis_Num])-4)
Cela ne solutionnera pas le problème mais rendra la requête un peu plus facile à comprendre si ceci est bien l'effet que vous souhaitez.
J'ai donc essayé avec ceci:
1 2 3 4 5 6 7 8 9
| SELECT
Left([Devis_Num],Len([Devis_Num])-4) AS numv,
Max(Right([Devis_Num],3)) AS NUMDEV
FROM
Tbl_Devis
GROUP BY
Left([Devis_Num],Len([Devis_Num])-4)
HAVING
Left([Devis_Num],Len([Devis_Num])-4)=11; |
Avec une table Tbl_Devis comprenant un champ Devis_Num de type Texte. J'ai positionné dans celui-ci des enregistrements allant de "01CCCC" à "20CCCC".
La requête fonctionne. (C'est exactement le même résultat que la requête que vous avez fourni).
Il y a eu peut être un problème qui est survenu lors de la compilation de la base de données. Il faudrait essayer de décompiler celle-ci pour ensuite la recompiler.
Pour cela il faut utiliser une commande DOS de ce type
Prompt> MSACCESS.EXE "LeCheminDeMaBase\MonFichierBaseDeDonnées.Extention" /DECOMPILE
C'est une option de démarrage d'access. Il est possible de toutes les consulter grace a l'aide en ligne d'access en tapant dans l'onglet Aide intuitive "Options de la ligne de commande de démarrage" puis en consultant cette article.
PS: Assert compare un objet / une variable par rapport à une valeur. Si ils sont différents Assert arrête l'execution des tests pour montrer que ce test n'est pas validé. Ceci implique de connaitre la valeur que doit avoir la variable / l'objet a cet instant précis.
Typiquement cela permet de vérifier par exemple si un objet métier à bien incrémenté sa variable après l'exécution d'une fonction d'incrémentation.
Un objet métier est un objet créé pour les besoin de l'application via un module de classe.
Partager