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

Résolu/Fermé
Signaler
Messages postés
66
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
2 mars 2010
-
Messages postés
66
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
2 mars 2010
-
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

9 réponses

Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
177
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
Messages postés
535
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
124
Bonjour,

Essai les fonctions avec des virgules et pas des points virgules
0
Messages postés
66
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
2 mars 2010
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
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
Messages postés
66
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
2 mars 2010
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
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
177
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
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
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
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
177
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
Messages postés
535
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
124
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
Messages postés
66
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
2 mars 2010
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