Convertir un champs dans plusieurs champs voisins

- - Dernière réponse : MarioC83
Messages postés
8
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
29 novembre 2019
- 29 nov. 2019 à 13:11
Bonjour,


Je suis nouveau sur ACCESS 2016.
Je cherche à convertir ("convertir" = langage Excel) un champ qui est entrée à l'aide d'une douchette à code barres dans plusieurs champs voisins.
Je sais comment réaliser cette tâche avec EXCEL et une macro mais pour ACCESS j'en ai aucune idée.

Le format du champ à convertir est le suivant :
SL234567T;A1-B;2;1;28.88;24;149

Qui devrait se convertir en 6 champs soit :
NoContrat : SL234567T
NoModel: A1-B
Qté : 2
NbPli : 1
Longueur : 28.88
NbMcx : 24
NbPmp : 149

Merci à l'avance pour votre aide et explications.

Bonne journée !

Configuration: iPhone / Safari 10.0
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
9065
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 décembre 2019
465
1
Merci
bonjour,
Excel et Access sont très différents.
que veux-tu réellement réaliser? veux-tu créer de nouveaux enregistrements dans une table Access contenant les 7 champs que tu indiques?
si oui, je pense à ces options:
1) enregistrer les données entrées via la douchette comme des nouveaux enregistrements dans une table temporaire, et, régulièrement, vider cette table et créer les enregistrements dans la table finale.
2) utiliser un formulaire utilisé pour l'encodage via la douchette. ce formulaire stockerait les données directement dans la table finale
3) garder ta logique actuelle, et adapter ta macro à Access. si tu veux de l'aide pour cela, peux-tu partager le code de ta macro?

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 62807 internautes nous ont dit merci ce mois-ci

MarioC83
Messages postés
8
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
29 novembre 2019
-
Bonjour yg_be,

Si cette option est possible, ça serait très satisfaisant pour moi.

Merci encore !
yg_be
Messages postés
9065
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 décembre 2019
465 > MarioC83
Messages postés
8
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
29 novembre 2019
-
voici une suggestion:
Option Explicit
Sub mariosplit()
Dim rs As DAO.Recordset, code As String, champ, numchamp As Integer, nomschamps
nomschamps = Array("NoContrat", "NoModel", "Qté", "NbPli", "Longueur", "NbMcx", "NbPmp")
Set rs = CurrentDb.OpenRecordset("select * from " + "latabledemarioc83" + " where [Code scanné] is not null")
Do While Not rs.EOF
    code = rs![Code scanné]
    numchamp = 0
    rs.Edit
    For Each champ In Split(code, ";", 7)
        rs.Fields(nomschamps(numchamp)) = champ
        numchamp = numchamp + 1
    Next champ
    rs![Code scanné] = Null
    rs.Update
    rs.MoveNext
Loop
End Sub
MarioC83
Messages postés
8
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
29 novembre 2019
-
Bonjour yg_be,

Je suis en questionnement, à votre avis, ne serait-ce pas plus simple de faire des champs calculés dans la même table ?
Par exemple, quelle serait l'expression (dans les champs 3 et 4) adéquate dans un champs calculé pour sortir de SL234567T;A1-B;2;1;28.88;24;149

SL2344567T dans le 3e champs et
149 dans le 4e champs ?

Le nombre de caractères par champ peut différer d'un enregistrement à l'autre.

Merci !
yg_be
Messages postés
9065
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 décembre 2019
465 > MarioC83
Messages postés
8
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
29 novembre 2019
-
Cela me semble simple et logique, au moment d'introduire les données, de faire un traitement pour les enregistrer correctement afin de pouvoir ensuite les traiter simplement et efficacement.
J'ai l'impression que tu veux reproduire dans Access ce que tu faisais en Excel. Pourquoi alors ne pas continuer avec Excel?
MarioC83
Messages postés
8
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
29 novembre 2019
-
Bonjour yg_be,

Je me suis posé la même question. Excel n'offre pas la capacité de stocker autant de données que ACCESS et déjà avec peut de lignes remplies le fichier est beaucoup trop lourd et difficile à travailler.

Aussi, ce qui m'attire d'ACCESS c'est la facilité de questionner la base de donnée avec les requêtes et de produire les états.

Je suis en réflexion mais voilà pourquoi je souhaite utiliser ACCESS pour cette base de données.

Merci !
Commenter la réponse de yg_be