amel3011
Messages postés18Date d'inscriptionmercredi 5 novembre 2008StatutMembreDernière intervention14 avril 2009
-
14 avril 2009 à 10:22
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 2016
-
14 avril 2009 à 15:12
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
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 14 avril 2009 à 15:12
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
amel3011
Messages postés18Date d'inscriptionmercredi 5 novembre 2008StatutMembreDernière intervention14 avril 2009 14 avril 2009 à 11:13
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
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 14 avril 2009 à 11:47
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.
amel3011
Messages postés18Date d'inscriptionmercredi 5 novembre 2008StatutMembreDernière intervention14 avril 2009 14 avril 2009 à 12:05
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
amel3011
Messages postés18Date d'inscriptionmercredi 5 novembre 2008StatutMembreDernière intervention14 avril 2009 14 avril 2009 à 12:17
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 !"