Soit un champ texte [A] comprenant les 4 enregistrements exemples suivants
(la taille du champ est de 255 caractères) :
COMMUNAUTE DE COMMUNES CANTON VII 343.8263 343.8264 870 559,72
COMMISSION SYNDICALE MARBOL LIGE 343.8265 343.8266 9 566,20
AF BILIGNE - 343.8271 343.8272 3 135,99
S.I.T.S DE BILIGNE - 343.8265 343.8266 153 474,09
Soit également un champ texte [B] vide.
Je souhaite extraire du champ [A] les caractères situés après le 5ème
caractère (un espace) suivant le dernier . (point) de chaque enregistrement
pour les coller dans le champ [B].
Ce qui donnerait dans les 4 enregistrements du champ [B] :
870 559,72
9 566,20
3 135,99
153 474,09
Si un (ou une) membre de ce forum pouvait me donner la solution (en
supposant que cela soit faisable), cela m'arrangerait bien. J'ai essayé avec
diverses fonctions se rapportant au traitement de chaînes de caractères,
mais je n'ai pas obtenu le résultat escompté.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"Dom" | Soit un champ texte [A] comprenant les 4 enregistrements exemples suivants | (la taille du champ est de 255 caractères) : | | COMMUNAUTE DE COMMUNES CANTON VII 343.8263 343.8264 870 559,72 | COMMISSION SYNDICALE MARBOL LIGE 343.8265 343.8266 9 566,20 | AF BILIGNE - 343.8271 343.8272 3 135,99 | S.I.T.S DE BILIGNE - 343.8265 343.8266 153 474,09 | | Soit également un champ texte [B] vide. | | Je souhaite extraire du champ [A] les caractères situés après le 5ème | caractère (un espace) suivant le dernier . (point) de chaque enregistrement | pour les coller dans le champ [B]. | | Ce qui donnerait dans les 4 enregistrements du champ [B] : | | 870 559,72
Mais, il vaut mieux utiliser cela dans une fonction, question de facilité...
Function Recup(s As Variant) As String If Len(s) > 0 Then Recup = Mid(Mid(s, InStrRev(s, ".") + 1), InStr(Mid(s, InStrRev(s, ".") + 1), " ")) End If End Function
ce qui, dans une requête avec un champ calculé, devient alors :
"Dom"
| Soit un champ texte [A] comprenant les 4 enregistrements exemples suivants
| (la taille du champ est de 255 caractères) :
|
| COMMUNAUTE DE COMMUNES CANTON VII 343.8263 343.8264 870 559,72
| COMMISSION SYNDICALE MARBOL LIGE 343.8265 343.8266 9 566,20
| AF BILIGNE - 343.8271 343.8272 3 135,99
| S.I.T.S DE BILIGNE - 343.8265 343.8266 153 474,09
|
| Soit également un champ texte [B] vide.
|
| Je souhaite extraire du champ [A] les caractères situés après le 5ème
| caractère (un espace) suivant le dernier . (point) de chaque enregistrement
| pour les coller dans le champ [B].
|
| Ce qui donnerait dans les 4 enregistrements du champ [B] :
|
| 870 559,72
Mais, il vaut mieux utiliser cela dans une fonction, question de facilité...
Function Recup(s As Variant) As String
If Len(s) > 0 Then
Recup = Mid(Mid(s, InStrRev(s, ".") + 1), InStr(Mid(s, InStrRev(s, ".") + 1), " "))
End If
End Function
ce qui, dans une requête avec un champ calculé, devient alors :
"Dom" | Soit un champ texte [A] comprenant les 4 enregistrements exemples suivants | (la taille du champ est de 255 caractères) : | | COMMUNAUTE DE COMMUNES CANTON VII 343.8263 343.8264 870 559,72 | COMMISSION SYNDICALE MARBOL LIGE 343.8265 343.8266 9 566,20 | AF BILIGNE - 343.8271 343.8272 3 135,99 | S.I.T.S DE BILIGNE - 343.8265 343.8266 153 474,09 | | Soit également un champ texte [B] vide. | | Je souhaite extraire du champ [A] les caractères situés après le 5ème | caractère (un espace) suivant le dernier . (point) de chaque enregistrement | pour les coller dans le champ [B]. | | Ce qui donnerait dans les 4 enregistrements du champ [B] : | | 870 559,72
Mais, il vaut mieux utiliser cela dans une fonction, question de facilité...
Function Recup(s As Variant) As String If Len(s) > 0 Then Recup = Mid(Mid(s, InStrRev(s, ".") + 1), InStr(Mid(s, InStrRev(s, ".") + 1), " ")) End If End Function
ce qui, dans une requête avec un champ calculé, devient alors :
Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev n'existe pas dans Access 97.
Ton code m'a permis néanmoins de trouver la solution :-))), encore merci.
Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes, et ça marche !
UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14); UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14); UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
Bien cordialement,
Dominique.
Bonjour Pierre,
Et merci de ta réponse.
Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev
n'existe pas dans Access 97.
Ton code m'a permis néanmoins de trouver la solution :-))), encore merci.
Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes,
et ça marche !
UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14);
UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14);
UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev n'existe pas dans Access 97.
Ton code m'a permis néanmoins de trouver la solution :-))), encore merci.
Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes, et ça marche !
UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14); UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14); UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
Bien cordialement,
Dominique.
3stone
Salut,
"Dom" | Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev | n'existe pas dans Access 97.
Excuses, j'avais oublié... mais tu remplace simplement : http://access.fr.free.fr/articles.php?lng=fr&pg=3
| Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes, | et ça marche ! | | UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14); | UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14); | UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
"Dom"
| Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev
| n'existe pas dans Access 97.
Excuses, j'avais oublié... mais tu remplace simplement :
http://access.fr.free.fr/articles.php?lng=fr&pg=3
| Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes,
| et ça marche !
|
| UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14);
| UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14);
| UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
"Dom" | Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev | n'existe pas dans Access 97.
Excuses, j'avais oublié... mais tu remplace simplement : http://access.fr.free.fr/articles.php?lng=fr&pg=3
| Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes, | et ça marche ! | | UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14); | UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14); | UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
Pierre, tu es Pierre, et sur cette Pierre, je bâtirai ton temple Access (en pierre, of course) ;-)
C'est pas stone çà ?
Dominique.
"3stone" a écrit dans le message de news:
Salut,
"Dom" | Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev | n'existe pas dans Access 97.
Excuses, j'avais oublié... mais tu remplace simplement : http://access.fr.free.fr/articles.php?lng=fr&pg=3
| Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes, | et ça marche ! | | UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14); | UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14); | UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
Pierre, tu es Pierre, et sur cette Pierre, je bâtirai ton temple Access (en
pierre, of course) ;-)
C'est pas stone çà ?
Dominique.
"3stone" <home@sweet_home.be> a écrit dans le message de news:
ORU7PdZtHHA.4916@TK2MSFTNGP05.phx.gbl...
Salut,
"Dom"
| Malheureusement, il y a un os (en tout cas pour moi), la fonction
InStrRev
| n'existe pas dans Access 97.
Excuses, j'avais oublié... mais tu remplace simplement :
http://access.fr.free.fr/articles.php?lng=fr&pg=3
| Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois
requêtes,
| et ça marche !
|
| UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14);
| UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14);
| UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));
Pierre, tu es Pierre, et sur cette Pierre, je bâtirai ton temple Access (en pierre, of course) ;-)
C'est pas stone çà ?
Dominique.
"3stone" a écrit dans le message de news:
Salut,
"Dom" | Malheureusement, il y a un os (en tout cas pour moi), la fonction InStrRev | n'existe pas dans Access 97.
Excuses, j'avais oublié... mais tu remplace simplement : http://access.fr.free.fr/articles.php?lng=fr&pg=3
| Après avoir créé un champ [C] dans ma table, j'enchaîne ces trois requêtes, | et ça marche ! | | UPDATE C53 SET C53.[B] = Right$([A],Len([A])-InStr(1,[A],".")-14); | UPDATE C53 SET C53.[C] = Right$([B],Len([B])-InStr(1,[B],".")-14); | UPDATE C53 SET C53.[C] = [B] WHERE (((C53.[B]) Is Null));