Creation fichier ascii [Résolu]

Signaler
Messages postés
18
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
14 avril 2009
-
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
Bonjour à tous

je voudrais creer un fichier ascii et importer des données d'une base de données access vers le fichier crée !

je ne sais pas par quoi commencer je n'ai jamais fais ce genre de programme.

le but de mon programme c'est d'importer des données d'un fichier ascii existant vers une table access puis d'exporter certains de ces données vers un autre fichier ascii que je dois créer.
pour la premiere partie du programme j'ai réussi à le faire
reste la creation et l'exportaion vers ascii.

je vous pris de me guider et de me montrer aumoin le mots clé que je dois utiliser

merci d'avance

6 réponses

Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Ta structure contient
DateTraitement et tu utilises DataTraitement
Code mais tu ne l'utilises pas

par contre tu ne définis pas VbCrlf alors que tu l'utilises comme faisant partie de ta structure (le . avant), ce qui fait 2 motifs pour cette erreur.

Quant à la méthode GetRows, elle accepte ces 3 paramètres, dans cet ordre mais tous optionnels:

- Rows spécifie le nombre d'enregistrements que tu veux récupérer, par défaut la valeur est -1 et signifie tous les enregistrements;
- Start spécifie le bookmark du 1er enregistrement à récupérer.
- Fields accepte un tableau des noms de champs que tu veux récupérer si tu ne les veux pas tous



J'espère que cela pourra t'être utile.





Calade
Messages postés
18
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
14 avril 2009

Re bonjour,

j'ai pu commencer mon code,
j'ai réussi à créer le fichier ascii, reste à l'organiser. parce que le fichier ascii doit avoir plusieurs colonnes pour les nom, prenom, et chaqun de ces colonnes a un nombre de caractere à ne pas depasser.

voici mon code :
set rec = base.openrecordset("salarie")
'CREATION DU FICHIER ASCII
fichier1 = "c:\essai.asc"
'1 je crée la référence du fichier
  Set fso = CreateObject("Scripting.FileSystemObject")
'2 je crée le fichier essai.asc dans le c:\.
Set MonFichier = OFS.CreateTextFile(fichier1, False, False)
'3 je vais maintenant écrire dans le fichier.
rec.MoveFirst
Do While Not rec.EOF


MonFichier.Write "je dois trouver un moyen de les organiser"
rec.MoveNext
Loop
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Plutôt que d'utiliser une boucle While Not .EOF, tu peux utiliser la méthode
rec.GetString ou rec.GetRows, la 1ère te génère directement une chaîne selon 5 paramètres à donner (les délimiteurs entre autres), la 2ème te génère un tableau à 2 dimensions que tu peux retravailler après, mais attention à l'occupation mémoire.



Calade
Messages postés
18
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
14 avril 2009

j'ai pas bien compris la fonction getrow, elle me permet de spécifié le nombre de caractère ou le nombre d'enregistrement ??
et comment je les enregistres dans le fichier ascii?

je peux avoir un exemple svp ?

merci
Messages postés
18
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
14 avril 2009

je vous remercie pour votre reponse, je vais vous montrer tout ce que j'ai fais :

Sub exporter_fichier(fichier As String)
Dim chaine, var_avant, unit, fichier1, var_apres As String
Dim rec As Recordset
Dim mat, name, surname, code_situation, mod_reg, No_ccp, net_a_payer
Dim pos, i, j As Long  Const ForReading 1, ForWriting 2, ForAppending = 8
  Dim fso, f


   Set rec = Base.OpenRecordset("Salarie")


fichier1 = "c:\essai5.asc"
  Set fso = CreateObject("Scripting.FileSystemObject")
Set monfichier = fso.CreateTextFile(fichier1, False, False)

cehmin11 = "c:\BASE_SALARIE.mdb"
lHandle = FreeFile
Open cehmin11 For Binary Lock Write As #lHandle
Do While Not rec.EOF()
Ecrit_table rec
rec.MoveNext
Loop


.....

et apres il va à la fonction Ecrit_table

Function Ecrit_table(rec As Recordset)
Dim monfichier As Enreg_Sortie
With monfichier
.datatraitement = rec("nom")
.CodeEnreg = rec("mat")
.Libelle = rec("unite")
.VbCrlf = VbCrlf
End With
Put #Handle, , EnregTable
End Function

Sachant que Enreg_Sortie :

Type Enreg_Sortie



CodeEnreg As String * 50
DateTraitement As String * 50
Code As String * 20

End Type
le probleme est dans la fonction Ecrit_table .
le message d'erreur est comme suit :
"methode ou membre de données introuvable !"
Messages postés
18
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
14 avril 2009

Re bonjour



je dois avoir dans mon fichier ascii ce modele là, c'est un seul enregistrement



        2=ABDELLI            =KARIM             =01/10/50=17/09/71==00/00/00=00/00/00=00/00/00=VILLA 28 CLUB DES                          =ville                 =1=DIRECT/MANT                      =CD= 5== 200= = 1==M=M=3===500071014362                    =