[ACCESS] export csv & séparateur décimal

Signaler
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

j'essaye d'exporter dans des fichier csv 208 tables (représentant 250 GO) d'une bdd postgre. J'ai lié toutes les tables dans une base access : jusqu'ici pas de problème.

après j'exécute ce code pour exporter chaque table dans des fichiers csv.
Sub liste_Tables()
    On Error Resume Next
    Dim T As DAO.TableDef
    Dim DB As DAO.Database
    Set DB = CurrentDb
     For Each T In DB.TableDefs
        'Verifie si c'est une table système
        If Left(T.Name, 2) <> "MS" Then
            DoCmd.TransferText acExportDelim, , T.Name, "C:\exportcsvins" & T.Name & ".csv", True
        End If
    Next T
End Sub

le problème vient qu'il me met une "," comme séparateur décimal et que je voudrait un "."

savez vous comment imposer le "." dans les exports.

d'avance merci

RB

5 réponses

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
Personnellement moi-même (c'est ma façon de faire et je la partage même si ça n'est sans doute pas la mieux ^^), j'utilise le "SpecificationName", que tu as laissé à vide dans tes paramètres.

Pour l'utiliser, je gère d'abord un export manuel (j'avoue que je n'ai pas trouvé encore s'il y a moyen d'y accéder autrement que par ce biais), donc clic droit sur la table à exporter, menu Exporter.
Sélection du format .csv puis Exporter. Là, dans la fenêtre qui s'ouvre, tu as un bouton appelé Avancé, clique dessus et tu ouvres la fenêtre qui te permet de paramètrer des spécifications d'import/export.
Ce qui t'intéresse est le champ séparateur, mais tu peux configurer autre chose, à toi de voir. Sélectionne ";" et fais Enregistrer Sous.
Pour illustrer, j'ai enregistrer sous "Test1" le ";", et sous "Test2" la "tab".

Ensuite, dans ton code d'export, tu spécifies ton fichier :
 DoCmd.TransferText acExportDelim,"Test1" , T.Name, "C:\exportcsvins" & T.Name & ".csv", True
L'export doit se faire avec les ";", refais la même chose avec "Test2" et normalement, tu auras les tabulations.

Molenn
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008

Bonjour Molenn,

le problème c'est que mes 208 tables sont toutes différentes. Donc si je fais un schema manuel pour chaque table cela reviens à faire l'export manuel pour chaque table !!

RB
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
Oups, je viens de voir que j'avais répondu à côté même si la manip que je te donne fonctionnait aussi pour ton cas.
Par contre, c'est sûr que si tes 208 tables n'ont la même structure, ça risque d'être difficile à appliquer.

Une autre solution serait, si c'est une manip' ponctuelle à faire, de modifier les paramètres régionnaux puisque ce sont eux qui déterminent par défaut quel caractère est employé pour les décimales. Dans ton panneau de config, dans les options régionales et Linguistiques, tu passes le Symbole décimal sur le "." le temps de faire ton export ? Il y a des chances que ça fonctionne.

Molenn
Messages postés
41
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2008

ben ça je l'avais déjà essayer mais ça me met quand même des ",".

d'où mon arrivé sur le forum parce que je bloque.

RB
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Je pense que c'est dû à tes paramètres régionaux.
Selon ce que tu dois faire, tu pourrais éventuellement faire un Replace de la "," en "." lorsque tu dois l'utiliser. Ou encore modifier tes paramètres ou te mettre en anglais, disons. À tester...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI