A voir également:
- Access, diviser un champ
- Access, diviser un champ ✓ - Forum - Access
- Diviser un champ access en 2 champs ✓ - Forum - Access
- Access concatener 2 champs - Forum - Access
- Access afficher un champ en fonction d'un autre ✓ - Forum - Access
- Vba access récupérer valeur champ sous-formulaire - Forum - VB / VBA
1 réponse
blux
- Messages postés
- 23763
- Date d'inscription
- dimanche 26 août 2001
- Statut
- Modérateur
- Dernière intervention
- 13 janvier 2020
Salut,
tu peux faire ça :
On suppose que IP est le nom du champ que l'on veut éclater.
Ca consiste à chercher où est le dernier "." (en le cherchant en premier mais en partant de la fin, avec l'instruction InStrRev).
Ensuite, on fait des calculs pour récupérer le bon nombre de caractères.
tu peux faire ça :
SELECT Left(IP,InStrRev(IP,".")-1),right(IP,len(IP)-InStrRev(IP,".")) FROM MA_TABLE;
On suppose que IP est le nom du champ que l'on veut éclater.
Ca consiste à chercher où est le dernier "." (en le cherchant en premier mais en partant de la fin, avec l'instruction InStrRev).
Ensuite, on fait des calculs pour récupérer le bon nombre de caractères.
Je ne comprends pas pourquoi il faut faire des calculs pour récupérer le bon nombre de caractères par contre étant donné qu'un port peut faire de 1 à 5 chiffres et une @IP de 7 à 19 caractères (en comptant les points)
Merci infiniment tu me facilite énormément la tâche!
En cherchant le dernier point, c'est celui qui sépare l'ip du port.
Comment trouver le dernier point ?
C'est le premier si l'on cherche à l'envers.
Une fois que l'on retrouvé sa position, il suffit de prendre tous les caractères à sa droite pour récupérer le port et tous les caractères à sa gauche pour avoir l'ip, mais comme on ne sait pas dire 'tous' les caractères, on calcule la longueur totale de la chaine (avec len) et on taille dedans avec joyeuseté en fonction de l'endroit où se trouve le point séparateur.
C'est plus clair ?
Encore merci!