bonjour, je vous écris car j'ai un problème lorsque j'importe un fichier csv dans une base. En gros le fichier csv s'importe correctement mais seulement pour certaines lignes ! celles qui bugg sont celles dont les champs contiennent une virgule à l'intérieur de guillemet :
voila par exemple une ligne de mon csv :
FT1,116C1,COMPTE LCL,114,"COMPTE LCL 0,25",1990-01-01,1994-12-31
cette ligne est importé correctement si j'écris COMPTE LCL 0.25 au lieu de "COMPTE LCL 0,25"
mais voila le probleme c'est que moi j'ai besoin que ce soit ecrit avec une virgule et non un point
pour mon code j'ai utilisé un TransfertText dans un bouton et ma table de destination est TABLEDEST
fopenfiles() est le code pour choisir un csv avec une boite de dialogue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DoCmd.TransferText acImportDelim, "", "TABLEDEST", fOpenFiles(), True, ""
Voila vous savez tout ! je pensais que pour un fichier csv il suffisait de mettre une expression entre guillemet pour que l'expression soit recopié même si elle contient des virgules ?
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 Function fOpenFiles() As String 'Nécessite la référence microsoft office x.x object library ' renvoie un string qui récupère l'adress du chemin du fichier csv Dim Dialogue As FileDialog Dim Fichier As Variant Set Dialogue = FileDialog(msoFileDialogOpen) With Dialogue .AllowMultiSelect = True .ButtonName = "Ouvrir" .InitialFileName = "*.csv" .Filters.Clear .Filters.Add "Comma-separated values", "*.csv" .InitialView = msoFileDialogViewList .Title = "Veuillez sélectionner les fichiers ..." If .Show Then For Each Fichier In .SelectedItems fOpenFiles = fOpenFiles & Fichier & ";" Next End If End With If Len(fOpenFiles) > 0 Then fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1) End If Set Dialogue = Nothing End Function
pourriez vous m'aidez ?
Partager