[ACCESS] left ou Mid dans un état = #erreur

Résolu
durahsel Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -  
durahsel Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai cherche à pouvoir coller des caractères d'un champ dans un état et pour cela je souhaite extraire les caractères un par un.

J'ai essayé les fonctions Mid et left :

ex dans mon formulaire :
=Gauche([code_dech];1)

mais sur mon état lors de l'aperçu j'ai un "#Erreur", pareil pour la fonction Mid
=Mid([code_dech];1;1)

Pq une telle erreur ?

Merci

Durahsel
A voir également:

9 réponses

phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178
 
très probablement code_dech est vide ou NULL. Les fonctions n'aiment pas ça.

=Gauche(ISNULL([code_dech], " ");1)
=Mid(ISNULL([code_dech], " ");1;1)
0
hervelot Messages postés 535 Date d'inscription   Statut Membre Dernière intervention   123
 
Bonjour,

Essai les fonctions avec des virgules et pas des points virgules
0
durahsel Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   11
 
désolé mais aucune de vos deux solutions ne fonctionne.

Dans les 2 cas (ISNULL et virgule à la place de "; ") j'obtiens une erreur de syntaxe .

pas d'autres idées ?
0
le père
 
Bonjour

Ce sont bien des point virgule qu'il faut.

N'aurais-tu pas donné le même nom au champ de ton état qu'à celui de la table sur laquelle il est basé ? Si le code qui contient =Gauche([code_dech];1) s'appelle code_dech, il y a une référence circulaire

Pour faire ce que phil232 voulait faire, isnull ne suffit pas, il aurait fallu :
=Gauche(IIF(ISNULL([code_dech]); " ";[code_dech]);1)
=Mid(IIF(ISNULL([code_dech]); " ";[code_dech]);1;1)
0
durahsel Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

non, ma table ne s'appelle pas comme mon champ (et inversement ...).

J'ai reesayé avec =Gauche(IIF(ISNULL([code_dech]); " ";[code_dech]);1) mais toujours "#erreur"

Je précise que le nom de ma zone de texte c'est "code_dech" = celui de mon champ.

J'ai rentré la fonction =Gauche(IIF(ISNULL([code_dech]); " ";[code_dech]);1) dans source contrôle.

?
0

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

Posez votre question
phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178
 
et puis : il faut des virgules dans VBA, par contre dans Access (cad les requêtes et les champs calculés) il faut bien les point-virgules
0
ahmed
 
essaie donc de remplacer le nom du champ par une chaine.si il ya toujours erreur c'est que ça vient de la formule , et dans ce cas ça ne peut etre que la virgule ou le point virgule selon que le nom de la fonction est en englais ou en français et selon que tu es en access ou en VBA
donc pour ce faire il faut combiner les noms de fonctions et les virgules et points- virgule
0
le père
 
ma table ne s'appelle pas comme mon champ (et inversement ...).
je n'ai pas voulu parler de ça mais du champ de ton état qui s'appelerait code_dech.
Dans ton esprit ce code_dech serait une colonne d'une table, mais pour access, il s'agirait du champ lui-même d'où la référence circulaire.

Je suggère ça parce que c'est ce qui m'est arrivé quand j'ai voulu reproduire ton problème.
Il m'a suffi de changer le nom du champ dans l'état (et de retaper la formule) pour que tout rentre dans l'ordre
0
phil232 Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   178
 
de tout façon un programmeur digne l'appellerait au moins "txtCode_Dech" ou encore mieux le nom en anglais. après 20 ans mon expérience est que dans IT seul l'anglais marche correctement, que ce soit la version d'un programme, le langage de programmation et la dénomination de quoi que ce soit.

Foreign languages SUCK!
0
hervelot Messages postés 535 Date d'inscription   Statut Membre Dernière intervention   123
 
te serais-t-il possible d'envoyer l'etat et la table liée afin d'analyser ton pb car je n'arrive pas à recréer ton erreur

ce que je peux te dire. Les valeurs nulles ne génèrent as à cette erreur, ce n'est pas une erreur de syntaxe
0
durahsel Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   11
 
merci à tous vous avez un peu tous fianelment résolu mon problème.

J'ai en effet perdu mes bon réflexes que j'avais appris pendant mes quelques cours de prog (je ne suis pas informaticien de formation mais bon ...) où il fallait toujours mettre un petit tri-sigle différent avant le nom. J'ai donc mis un "txt" devant mon nom d'étiquette et ça roule !

Il y avait redondance entre mon nom de champ, et mon nom d'étiquette txt. ce n'etait pas dutout une histoire de virgule ...

Merci à tous
0