Bonjour,
Je vous explique mon problème, dans une base Access j'ai un import de table d'un point csv, Cette import contient des champs faisant référence à d'autre table sauf que ses champs sont uni-valué et contiennent plusieurs référence à d'autre table dans un même enregistrement séparer par "|" entre chaque valeur. je voudrais donc récupérer ces valeurs pour les mettre dans un nouveaux champs multi-valué.
Pour être plus précis j'ai un champs1 avec ce type de données : "10|12|15" que je voudrais éclater pour insérer dans un champs2 multi-valué "10" "12" "15".
Mon problème est de récupérer les données du champs 1 dans une variable string VBA.
Mon code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Sub S03_ChampMultiValueAjouterUn() Dim oRst As DAO.Recordset ' Sélectionne le champs 2 Set oRst = CurrentDb.OpenRecordset("SELECT Activite_liste FROM Organisation WHERE id=18 ") SQL = "SELECT value FROM STRING_SPLIT(Organisation.Activities, '|')" Dim tmp As DAO.Recordset 'Sélectionne le champs 1 Set tmp = CurrentDb.OpenRecordset("SELECT Activities FROM Organisation WHERE id=18 ") Dim b As String 'n'arrive pas à récupérer le champs 1 dans la variable b b = tmp.Fields(0).Value Dim a As Variant a = Split(b, "|") With oRst ' Si l'enregistrement existe If Not .EOF Then .Edit ' Accède au champ multivalué With .Fields(0).Value ' Ajoute la valeur et met à jour .AddNew .Fields(0).Value = a(0) .Update End With .Update Else MsgBox "Ce chauffeur n'existe pas" End If End With End Sub
Si il y a un moyen même sans utiliser du VBA je suis preneur.
Merci d'avance.
Partager