[Access] separer un champ en 3

Fermé
geo_67210 - 17 mars 2009 à 09:04
 toto3317 - 16 juil. 2009 à 12:12
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

Merci pour cette réponse, mais je n'ai jamais utilisé VBA : il faut procéder comment ?
0
est ce que quelqu'un pourrait m'aider, je suis bloqué
Merci d'avance
0
toto3317 > geo_67210
16 juil. 2009 à 12:12
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
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