rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008
-
16 juil. 2008 à 14:43
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
16 juil. 2008 à 23:34
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.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 16 juil. 2008 à 15:17
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.
rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008 16 juil. 2008 à 15:32
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 !!
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 16 juil. 2008 à 16:18
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.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 16 juil. 2008 à 23:34
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