Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2011, 12h00   #1
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 2
Points : 2
Par défaut Extraire plusieurs valeurs dans une chaine de caractères

Bonjour à tous.

J'ai cherché dans la FAQ et sur le forum mais je n'ai rien trouvé qui correspond à ce que je recherche.

Dans mon exemple j'ai une table de la sorte :
TABLE_1
- Champ 1 : ID
- Champ 2 : Description (format memo ou texte)

Le champ Description peut donc contenir pas mal de texte.

J'aimerai rechercher dans ce champ toutes les valeurs qui commencent par 1234 avec les 10 caractères suivants (ce qui doit me donner au final une chaine de 14 caractères).

Après mes recherches sur le forum, j'arrive partiellement à le faire, c'est à dire que je trouve la première valeur qui commence par 1234 puis les 10 caractères suivant, par contre s'il y a d'autres chaine qui commencent par 1234 dans le même texte... je suis incapable de les sortir.

Actuellement voici ce que je fais :
Code :
VraiFaux([Description] Comme "*" & "1234" & "*";Gauche(ExtracChaîne([Description];DansChaîne([Description];"" & "1234" & ""));14);"KO")
Cela marche très bien mais cela ce limite donc à la première occurrence trouvée dans le texte... Y a t'il un moyen de toutes les ressortir ?

Merci d'avance pour votre aide, et si j'ai raté une FAQ qui peut m'aider, n'hésitez pas à me l'indiquer.
benny67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 20h55   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour,
Créer une fonction qui retourne toutes les instances 1234??????
il suffit de récuperer le résultat dans une liste

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Sub test()
 Dim s As String, liste() As String
 s = "as 1234azertyuiop54 aze1234mlkjsdlfkjmlqksdjf1234qsdflkqsùfg"
 liste = Split(Extraction(s), ";")
End Sub
 
Function Extraction(s As String) As String
 Dim n As Long, n2 As Long
 
 n2 = 1
 n = InStr(n2, s, "1234")
 Do
  Extraction = Extraction & Mid$(s, n, 10) & ";"
  n2 = n + 1
  n = InStr(n2, s, "1234")
 Loop Until n = 0
 Extraction = Left$(Extraction, Len(Extraction) - 1)
End Function
A adapter avec une boucle pour lire chaque enregistrement de la table
helas est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/10/2011, 20h09   #3
Invité de passage
 
Inscription : avril 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 5
Points : 2
Points : 2
merci de ton aide je testerai dès que possible.
benny67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h09.


 
 
 
 
Partenaires

Hébergement Web