OVH Cloud OVH Cloud

Récupérartion d'une partie de texte

5 réponses
Avatar
Michel
Bonjour à toutes et à tous

voila ce qui m'ammene :
Dans une requéte j'ai besoin de récupérer une partie d'un champ, "tous ce
qui ce trouve derrière "-" dans un autre champ
exemple champ 1 :

Neuilly-Plaisance
Jeune-recrus

Champ 2

Plaisance
recrus

J'ai essayé
champ2: mid([champ1];"-":*)
ça ne marche pas.

si quelqu'un peut me donner la syntaxe a utiliser.

d'avance merci

5 réponses

Avatar
Eric
Bonjour,
Essaies:
Extraction: VraiFaux(Pas
EstNull([champ1]);ExtracChaîne$([champ1];DansChaîne([champ1];"-")+1);[champ1])

Si champ1 ne contient pas de - tu récupèreras tout champ1
Si champ1 est null, aussi.

Si tu veux uniquement faire apparaitre ce qui suit le - et rien dans
tous les autres cas, alors faire:
Extraction:VraiFaux(DansChaîne([champ4];"-")>0;ExtracChaîne$([champ4];DansChaîne([champ4];"-")+1);"")

(le tout sur une seule ligne)

Bonjour à toutes et à tous

voila ce qui m'ammene :
Dans une requéte j'ai besoin de récupérer une partie d'un champ, "tous ce
qui ce trouve derrière "-" dans un autre champ
exemple champ 1 :

Neuilly-Plaisance
Jeune-recrus

Champ 2

Plaisance
recrus

J'ai essayé
champ2: mid([champ1];"-":*)
ça ne marche pas.

si quelqu'un peut me donner la syntaxe a utiliser.

d'avance merci






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

Replacer champ4 par champ1 dans la 2eme proposition évidemment !

Bonjour,
...
Si tu veux uniquement faire apparaitre ce qui suit le - et rien dans
tous les autres cas, alors faire:
Extraction:VraiFaux(DansChaîne([champ4];"-")>0;ExtracChaîne$([champ4];DansChaîne([champ4];"-")+1);"")

--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Michel
Merci Eric

cela marche et j'avais bien remplacé par champs1
encore une petite chose, je souhaite dans cette requéte remplacer dans un
champ le "/" par un "_"
afin de récupere une valeur servant de nom d'enregistrement de fichier
d'export Rtf devant s'incrémenté.

Table club : Cergy/dans
Table Banque : Cergy_Dans-33
Chaque table dispose d'une clef primaire
Si pas encore de réglement, Cergy_Dans inexistant dans la table Banque

Départ Champ1 Cergy/Dans-33
Champ2 "33"
Champ3 "Cergy_Dans"

Champ4 ([champ2]+1) "34"
Champ5 [Champ]3&" - "&[champ4] "Cergy_Dans-34"

et bien sur si il n'existe pas de N° au départ, généré "Cergy_Dans-1"

c'est un peu compliqué

là je séche
Si tu vois comment ce serais chouette.

d'avance Merci



--
Confirmation de lecture demandée

Michel Bézoteaux

Tél. 01 76 11 04 88 (nouveau N° Tél.)
Fax 08 25 18 74 49


"Eric" a écrit dans le message de news:
%
re,

Replacer champ4 par champ1 dans la 2eme proposition évidemment !

Bonjour,
...
Si tu veux uniquement faire apparaitre ce qui suit le - et rien dans tous
les autres cas, alors faire:
Extraction:VraiFaux(DansChaîne([champ4];"-")>0;ExtracChaîne$([champ4];DansChaîne([champ4];"-")+1);"")
--

A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
re,

Pas tout compris mais en partant du fait que champ1 peut contenir
Cergy/Dans-33 ou Pontoise/Dans par exemple, pour obtenir les champs 2,
3, 4, 5 tu fais:

champ2:
CNum(VraiFaux(DansChaîne([champ1];"-")>0;ExtracChaîne$([champ1];DansChaîne([champ1];"-")+1);""))
champ3:
VraiFaux(DansChaîne([champ1];"-")>0;replace(Gauche$([champ1];DansChaîne([champ1];"-")-1);"/";"_");replace([champ1];"/";"_"))
champ4: [champ2]+1
champ5: [champ3] & "-" & [champ4]

ce qui te donne:
champ1 champ2 champ3 champ4 champ5
Cergy/Dans-33 33 Cergy_Dans 34 Cergy_Dans-34
Pontoise/Dans 0 Pontoise_Dans 1 Pontoise_Dans-1


Merci Eric

cela marche et j'avais bien remplacé par champs1
encore une petite chose, je souhaite dans cette requéte remplacer dans un
champ le "/" par un "_"
afin de récupere une valeur servant de nom d'enregistrement de fichier
d'export Rtf devant s'incrémenté.

Table club : Cergy/dans
Table Banque : Cergy_Dans-33
Chaque table dispose d'une clef primaire
Si pas encore de réglement, Cergy_Dans inexistant dans la table Banque

Départ Champ1 Cergy/Dans-33
Champ2 "33"
Champ3 "Cergy_Dans"

Champ4 ([champ2]+1) "34"
Champ5 [Champ]3&" - "&[champ4] "Cergy_Dans-34"

et bien sur si il n'existe pas de N° au départ, généré "Cergy_Dans-1"

c'est un peu compliqué

là je séche
Si tu vois comment ce serais chouette.

d'avance Merci





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Michel
Bonsoir Eric
et encore merci pour le mal que tu te donne.
Ce que tu m'as fournis marche impec si il n'y a qu'une table dans la
requète.
Mais il se trouve que l'enregistrement initiale peut ce trouver dans 2
tables.

Table1 : Cergy/Dans
Cergy/Pontoise
Neuilly/Plaisance
Etc...

Table2 : Cergy_Dans-33

Si nouvel enregistrement Cergy/Dans le Cergy_Dans-33 doit être récuperé dans
la table2 et incrémenter pour générer Cergy_Dans-34 dans la Tables2

Si nouvel enregistrement Cergy/Pontoise le Cergy_Pontoise n'existant pas
dans la Table2 il faut récupérer Cergy/Pontoise dans La Table1 et générer
Cergy_Pontoise-1 dans la Table2

Je pensais plusieur requètes en cascade
1- Table1 pour le nom et généré le N° 0 pour la table1
2- Une seconde pour extraire le N° de la Table2
3- Une Troisième requète pour concaténer le champs du N° de la Table1 (0) et
N° (33) de la Table2, en extraire le N° le plus haut et l'incrémenter +1
et assembler avec le Nom corrigé, pour obtenir le résultat recherché.

Cela peut il marché ou existe t'il quelque chose de plus simple.

D'avance merci
Michel




"Eric" a écrit dans le message de news:
e2dXD$
re,

Pas tout compris mais en partant du fait que champ1 peut contenir
Cergy/Dans-33 ou Pontoise/Dans par exemple, pour obtenir les champs 2, 3,
4, 5 tu fais:

champ2:
CNum(VraiFaux(DansChaîne([champ1];"-")>0;ExtracChaîne$([champ1];DansChaîne([champ1];"-")+1);""))
champ3:
VraiFaux(DansChaîne([champ1];"-")>0;replace(Gauche$([champ1];DansChaîne([champ1];"-")-1);"/";"_");replace([champ1];"/";"_"))
champ4: [champ2]+1
champ5: [champ3] & "-" & [champ4]

ce qui te donne:
champ1 champ2 champ3 champ4 champ5
Cergy/Dans-33 33 Cergy_Dans 34 Cergy_Dans-34
Pontoise/Dans 0 Pontoise_Dans 1 Pontoise_Dans-1


Merci Eric

cela marche et j'avais bien remplacé par champs1
encore une petite chose, je souhaite dans cette requéte remplacer dans un
champ le "/" par un "_"
afin de récupere une valeur servant de nom d'enregistrement de fichier
d'export Rtf devant s'incrémenté.

Table club : Cergy/dans
Table Banque : Cergy_Dans-33
Chaque table dispose d'une clef primaire
Si pas encore de réglement, Cergy_Dans inexistant dans la table Banque

Départ Champ1 Cergy/Dans-33
Champ2 "33"
Champ3 "Cergy_Dans"

Champ4 ([champ2]+1) "34"
Champ5 [Champ]3&" - "&[champ4] "Cergy_Dans-34"

et bien sur si il n'existe pas de N° au départ, généré "Cergy_Dans-1"

c'est un peu compliqué

là je séche
Si tu vois comment ce serais chouette.

d'avance Merci





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr