[Access] separer un champ en 3

geo_67210 -  
 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
A voir également:

2 réponses

geo_67210
 
Merci pour cette réponse, mais je n'ai jamais utilisé VBA : il faut procéder comment ?
0
geo_67210
 
est ce que quelqu'un pourrait m'aider, je suis bloqué
Merci d'avance
0
toto3317 > geo_67210
 
Salut Geo,

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!
0
bnb
 
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