{Access} Traitement des données VBA Access

Fermé
Debora 78 - 15 févr. 2010 à 16:48
 Debora 78 - 16 févr. 2010 à 11:07
Bonjour,

Bonjour,


Je ne sais pas scanner un champ et fractionner ses données :

Mon Champ a la Structure suivante : C1AnExBy

Il peut toutefois changer de formes :
1/ C1An
2/C1AnEx
3/C1AnExBy

sachant que n, x et y sont des chiffres qui peuvent s'écrire sur deux caractères.

Je veux scanner les données de ce champ et les répartir sur trois champ :

1/ le premier prend An
2/ le deuxième prend Ex

3/ le troisième prend By


Si il n'y a pas de Ex et de By je les force à E1 et à B1.

Merci de m'aider

1 réponse

Adrastée Messages postés 3 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 15 février 2010
15 févr. 2010 à 23:49
Bonjour,

Tu vas pouvoir scanner à l'aide des fonction :
InStr
mid
left
right
len
Sur le web il y a beaucoup d'information, voici un site avec quelques exemples:
https://dominiquemaniez.developpez.com/access/fonctionsVBA/

Pour placer dans plusieurs champ les informations, tu peux le coder en VBA à l'aide de "l'Aide Access" sur la librairie DAO ou tout simplement dans une requête ajout.

Pour le scanne dans une requête ajout:
Pour chacun des champs tu crées ta contrainte de la partie du code entré qu'il devrait contenir.
Si tu as la certitude que tes chiffres sont toujours 2 ce sera plus facile, mais sinon :

Exemple:
Champ1 :mid(leCode; 3, iif(instr(leCode;'E')>0;Instr(leCode;'E'))-3)

Champ2: iff(instr(leCode;'E')>0; mid(leCode;instr(leCode;'E'); iif(instr(leCode;'B')>0;Instr(leCode;'B'))-instr(leCode;'E'))

Champ3: iif(instr(leCode;'B')>0;right(leCode;instr(leCode;'B')))

Je ne l'ai pas tester, mais c'est approximativement ça.
Au pire, ajouter des ±1, si les positions ne sont pas exacte.

Bonne chance!
0
Merci pour ton aide,

je te tiens au courant !!!
0