[Access] separer un champ en 3
geo_67210
-
toto3317 -
toto3317 -
Bonjour,
J'ai un champ qui comporte 3 informations, séparées par " - " dans access, et je voudrais les éclater en 3 champs distincts.
J'ai essayé ce code :
INSERT INTO TNouvelle(ChampA,ChampB,ChampC) SELECT Split(Champ1," - ")(0) AS ChampA, Split(Champ1," - ")(1) AS ChampB, Split(Champ1," - ")(2) AS ChampC FROM TAncienne
mais j'ai un message d'erreur :
"Utilisation non valide de '.','!',ou'()'. dans l'expression 'Split(Champ1," - ")(0)'."
Je ne sais pas ce qui coince, quelqu'un peut il m'aider ?
Merci
J'ai un champ qui comporte 3 informations, séparées par " - " dans access, et je voudrais les éclater en 3 champs distincts.
J'ai essayé ce code :
INSERT INTO TNouvelle(ChampA,ChampB,ChampC) SELECT Split(Champ1," - ")(0) AS ChampA, Split(Champ1," - ")(1) AS ChampB, Split(Champ1," - ")(2) AS ChampC FROM TAncienne
mais j'ai un message d'erreur :
"Utilisation non valide de '.','!',ou'()'. dans l'expression 'Split(Champ1," - ")(0)'."
Je ne sais pas ce qui coince, quelqu'un peut il m'aider ?
Merci
A voir également:
- [Access] separer un champ en 3
- Ai suite 3 - Télécharger - Optimisation
- Séparer pdf - Guide
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Diviser une photo en 3 instagram - Guide
2 réponses
Tu dois travailler en VBA:
1. Calculer la longeur de ton champs (fonction Len)
2. Controler la position de tes tirets dans ton champs (fonction Instr). Puisqu'ils séparent des valeurs, les tirets sont entourés de caractères blancs " - " ce qui facilitera la tâche pour les différencier des tirets des mots composés.
3. Récupérer les 3 valeurs grâce aux fonctions Left, Mid & Right.
CQFD ;-)
Par exemple
a= len(champs1)
x = instr(0," - ", champs1)
y = instr(x+2, " - ", champs1)
result1 = left(champs1, x-1)
result2 = mid(champs1, x +2, (y-1)-(x+2))
result3 = right(champs1, a-(y+2))
A peaufiner!
1. Calculer la longeur de ton champs (fonction Len)
2. Controler la position de tes tirets dans ton champs (fonction Instr). Puisqu'ils séparent des valeurs, les tirets sont entourés de caractères blancs " - " ce qui facilitera la tâche pour les différencier des tirets des mots composés.
3. Récupérer les 3 valeurs grâce aux fonctions Left, Mid & Right.
CQFD ;-)
Par exemple
a= len(champs1)
x = instr(0," - ", champs1)
y = instr(x+2, " - ", champs1)
result1 = left(champs1, x-1)
result2 = mid(champs1, x +2, (y-1)-(x+2))
result3 = right(champs1, a-(y+2))
A peaufiner!
Merci d'avance
Est ce que tu as trouvé une solution à ton problème?
Je recherche également à séparer un champ qui comprend "date" "heure" et six valeurs. J'ai donc 8 caractères en ligne dans le même champ séparés par des espaces et cherche donc à les diviser. Je n'ai pas de connaissance en VBA et pas vraiment non plus en SQL....
Aurais tu une idée? Si d'autres personnes en ont je suis évidemment preneur!
Merci d'avance!