Export fichier txt et contrôle [Résolu]

Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
- - Dernière réponse : saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
- 14 oct. 2012 à 21:29
'ai une application vb6 base de données MSacces, j'ai fait exporter une requête en un fichier txt. et exactement l'export des matricule des personne avec d'autre informations relatif.
je veux une astuce que lorsque je lance la commande export n'exporte pas les matricule déja exporter.????
Afficher la suite 

15 réponses

Meilleure réponse
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
3
Merci
Alors n' ouvres ton fichier qu' après s' être assuré que le recordset est plein.

   If .Eof And .Eof Then Exit Sub
   .MoveFirst 
   Open "C:\personnel\EXPORT.txt" For Output As #1 




[] Ce qui va sans dire. va mieux en le disant.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 214 internautes nous ont dit merci ce mois-ci

Commenter la réponse de LIBRE_MAX
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
3
Merci
Réponse 1
If .Eof And .Eof Then 
   MsgBox "pas de cariére à exporter"
    Exit Sub
End If
   .MoveFirst 
   Open "C:\personnel\EXPORT.txt" For Output As #1 


Réponse 2
Repostes ton code, et bien indenté cette fois.



[] Ce qui va sans dire. va mieux en le disant.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 214 internautes nous ont dit merci ce mois-ci

Commenter la réponse de LIBRE_MAX
0
Merci
Mets une colonne "Exporté" en boolean dans ta base de données puis apprends le SQL pour savoir utiliser Exporté = true
Commenter la réponse de Utilisateur anonyme
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
j'ai déjà ajouté le champs exporté dans la table cariére et après je ne peux rien faire

voici le code source de l'export du requête :

  


Dim Reponse8 As String

Reponse8=MsgBox("Vous voulez vraiment valider l'export en cours!",vbQuestion+vbYesNo,"Export des Carrières")

If (Reponse8 = vbYes) Then


Set MaConn = New ADODB.Connection
MaConn.Provider = "Microsoft.Jet.OLEDB.4.0;"

MaConn.Open "C:\personnel\GCP.mdb"

Set rsttable = New ADODB.Recordset

rsttable.Open "SELECT * FROM cariére" & _
" ORDER BY matricule,DateDebut;", MaConn, , , adCmdText


Dim xMatricule As String, xNom As String, Schaine As String
Dim xPrenom As String, xdatenaissance As String, xsexe As String, xDateDebut As String, xDateFin As String, xidq As String, xidpos As String, xidg As String, xidf As String, xidts As String





Open "C:\personnel\EXPORT.txt" For Output As #1
With rsttable
.MoveFirst

While Not.EOF
xMatricule=!Matricule
Schaine=Right("0000000000"+Trim(!Matricule),10)&Left(!Nom+Space(40),40)&Left(!Prenom+Space(40),40)&Format$(!datenaissance,"ddMMyyyy")&!sexe


Do While Not.EOF And xMatricule=!Matricule
Schaine=Schaine&Format$(!DateDebut,"ddMMyyyy")&Format$(!DateFin,"ddMMyyyy")&Right("00"+Trim(!idq),2)&Right("00"+Trim(!idpos),2)&Right("0000"+Trim(!idg),4)&Right("0000"+Trim(!idf),4)&Right("00"+Trim(!idts),2)
.MoveNext


If .EOF Then Exit Do
Loop

Print #1, "0000000008" & Schaine


Wend
End With
Close #1
rsttable.Close

End If

End Select

Commenter la réponse de saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
hi Mr cmarcotte j'ai pas pu la résolu
j'attend votre aide si possible
Commenter la réponse de saidmansour
0
Merci
Bonjour,

Je n'ai plus Access. Quand j'avais Access 2002, il y avait moyen de faire et tester les requêtes avec le concepteur de requêtes ou les assistants et de récupérer l'instruction SQL correspondante dans le presse-pqpiers. Cela doit être la même chose avec les autres nersions.
Commenter la réponse de Utilisateur anonyme
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
Bonjour,

désolé pour mon exigence mais je me suis bloqué et je n'arrive à résoudre le truc
Commenter la réponse de saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
et mon code je l'ai déjà exposé
Commenter la réponse de saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
après avoir j'ai mis le colonne "exporté" sa marche mais si je n'ai rien exporter un message erreur exécution "3021":BOF ou EOF est égale à true ou l'enregistrement à été supprimer l'opération demandé nécessite un enregistrement actuel
voici mon nouveau code





Dim Reponse8 As String

Reponse8=MsgBox("Vous voulez vraiment valider l'export en cours!",vbQuestion+vbYesNo,"Export des Carrières")

If (Reponse8 = vbYes) Then


Set MaConn = New ADODB.Connection
MaConn.Provider = "Microsoft.Jet.OLEDB.4.0;"

MaConn.Open "C:\personnel\GCP.mdb"

Set rsttable = New ADODB.Recordset

rsttable.Open "SELECT * FROM cariére where exporté = true" & _
" ORDER BY matricule,DateDebut;", MaConn, , , adCmdText


Dim xMatricule As String, xNom As String, Schaine As String
Dim xPrenom As String, xdatenaissance As String, xsexe As String, xDateDebut As String, xDateFin As String, xidq As String, xidpos As String, xidg As String, xidf As String, xidts As String





Open "C:\personnel\EXPORT.txt" For Output As #1
With rsttable
.MoveFirst

While Not.EOF
xMatricule=!Matricule
Schaine=Right("0000000000"+Trim(!Matricule),10)&Left(!Nom+Space(40),40)&Left(!Prenom+Space(40),40)&Format$(!datenaissance,"ddMMyyyy")&!sexe


Do While Not.EOF And xMatricule=!Matricule
Schaine=Schaine&Format$(!DateDebut,"ddMMyyyy")&Format$(!DateFin,"ddMMyyyy")&Right("00"+Trim(!idq),2)&Right("00"+Trim(!idpos),2)&Right("0000"+Trim(!idg),4)&Right("0000"+Trim(!idf),4)&Right("00"+Trim(!idts),2)
.MoveNext


If .EOF Then Exit Do
Loop

Print #1, "0000000008" & Schaine

maconn.Execute "UPDATE cariére SET exporté = false"
Wend
End With
Close #1
rsttable.Close

End If

End Select
End Sub
Commenter la réponse de saidmansour
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
Bonsoir,

Il faut éviter de faire un MoveFirst avant de savoir si la requete renvoie quelque chose.
With rsttable 
    If .Eof And .Eof Then Exit Sub
   .MoveFirst 


Personnellement j' ai pris l' habitude de faire ceci:
With rsttable 
    On Error Resume Next
    .MoveLast
    .MoveFirst
    If .Eof And .Eof Then Exit Sub
    On Error Goto Err_
    Do While Not .Eof
       '<traitement>  
       '...
       .MoveNext
    Loop
End With

Exit Sub

Err_:
MsgBox rr.Description

End Sub







[] Ce qui va sans dire. va mieux en le disant.
Commenter la réponse de LIBRE_MAX
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
petite rectification:

Err_:
MsgBox Err.Description



[] Ce qui va sans dire. va mieux en le disant.
Commenter la réponse de LIBRE_MAX
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
ça va sauf que si je fais exporter et j'ai rien à exporter c'est -à-dire exporte=false
la premiére fois ça marche et la deuxième fois il ya un erreur:
erreur execution'55':fichier déjà ouvert
Commenter la réponse de saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
oui ça marche très bien mais juste je veux une message que si le recordset et vide " pas de cariére à exporter" .
Commenter la réponse de saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
pardon ainsi ilya un problème il n'exporte pas le premier enregistrement
Commenter la réponse de saidmansour
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
merci bien c'est résolu
tous marche bien
Commenter la réponse de saidmansour