Exportation access vers fichiers txt au format Fixe
cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 2011
-
20 janv. 2005 à 15:34
cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 2011
-
21 janv. 2005 à 18:42
Bonjour à Tous,
Après avoir bu une bonne dose de café, et ne sachant plus ou chercher
je vous crie à l'aide.
Voila j'ai composer ce code:
Function ExportationDelim()
Dim Champ1 As String
Dim Champ2 As String
Dim bds As Database, qdf As QueryDef
Dim chSQL As String
'Définition des variables
'Champ1 = [Texte1]
'Champ2 = [Texte2]
'Activation de la base de donnée en cours
Set bds = CurrentDb
bds.QueryDefs.Refresh
' Si la requête NouvelleRequête existe, la supprime.
For Each qdf In bds.QueryDefs
If qdf.Name = "NouvelleRequete" Then
bds.QueryDefs.Delete qdf.Name
End If
Next qdf
par
DoCmd.TransferText acExportDelim, , "NouvelleRequete", "C:\EDF\SERNAM.TXT", True
Le problème me direz vous? ou plus tôt les problèmes
1) je n'arrive pas à me débarassez des guillemets dans mon résulatat.
2) je ne trouve pas mon fichier shema.ini
2) il me faut faire un cacul style col45 = ent(col20/1000) (hum!!!!!!!)
bref cela me simplifie plus la vie en format fixe.
Donc ma nouvelle question est pensez vous que cela peut venir d'un
mauvais paramétrage de mon ODBC ?
qui me sert à faire mes exportations
cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 20111 20 janv. 2005 à 17:48
Salut à tous,
Je me rends compte que j'ai fait plein d'impair,
La première chose c'est que j'utilise access2000
La seconde c'est que le message d'erreur est :
Erreur d'execution '3061':
Trop peu de paramètre. 0 attendu.
Jai bien copié mon fichier export.ini dans mon Bon répertoire.
Je suis entrain de devenir fou a cause de cela,
je trouve rien sur le net pour mon msg d'erreur.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 21 janv. 2005 à 14:14
Comme j'ai commencé à essayer de te répondre, ton prob m'a pris la tête. Alors j'ai fouillé partout sur le WEB sans trouver de solution très explicite, sauf un site en Allemand qui m'a mis sur la piste. Alors voilà, j'ai fini par faire un truc qui fonctionne chez moi (Access 97), à tester avec Access 2000 :
1 - Un clic sur ma table (Table1) pour la sélectionner
2 - J'ai utilisé l'assistant d'Access (menu Fichier et Enregistrer sous/Exporter) et j'ai fait comme si j'exportais manuellement :
- choix du type de fichier ("Fichier texte .....")
- choix du format (delimited ou fixed)
- pour la taille des champs j'ai laissé ce qui était proposé
- au dernier moment (quand le bouton Suivant est devenu grisé), un clic sur le bouton "Avancé" puis sur le bouton "Enregistrer sous". Là j'ai tapé "Export_Table1".
3 - J'ai testé le code suivant :
DoCmd.TransferText acExportFixed, "Export_Table1", "Table1", "c:\temp\essai.txt", True
et, bingo, ça marche !
A noter :
Je n'ai pas trouvé non plus de schema.ini, par contre les infos sur l'export se trouvent dans la table système d'Access "MSysIMEXSpecs".
Dans le fichier exporté, la 1ère ligne (si tu as mis true en fin d'instruction) contient les noms des champs mais séparés par des virgules. Les autres lignes sont en taille fixe. C à d que si un de tes champs est défini en text 50 cars, tu auras 50 cars même si le champs est vide (des espaces).
cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 20111 21 janv. 2005 à 18:42
Salut,
Tout d'abord un grand merci à tous, Spécialemnt à CanisLupus (Tu es le meilleur je vais voter pour toi au prochaîne élection )
J'avais deux erreurs dans mon programme
la première
"WHERE ((([Lettre Voiture].N°Livraison)=[Forms]![Livraison clients]![N°Livraison]))"
en effet le moteur Jet de windows ne sais pas extraire de donnée d'une forme
donc on corrige comme cela
'"WHERE [Lettre Voiture].N°Livraison)="&[Forms]![Livraison clients]![N°Livraison]
j'ai donc éviter l'erreur
Erreur d'execution '3061':
Trop peu de paramètre. 0 attendu.
Ensuite je me suis servi
De la méthode de Canis lupus
c'est à dire
DoCmd.TransferText acExportFixed, "descpitifNR2", "NOUVELLEREQUETE", "c:\temp\TEST.txt", True
et bingo cela fonctionne!!!
Merci à tous .
Je vais m'abonner au forum pour essayer d'aider moi aussi car cela m'a rendu un énorme
service