Export fichier txt et contrôle

Résolu
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012 - 3 oct. 2012 à 22:52
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.????

15 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
14 oct. 2012 à 19:25
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.
3
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
14 oct. 2012 à 21:05
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.
3
Utilisateur anonyme
4 oct. 2012 à 02:10
Mets une colonne "Exporté" en boolean dans ta base de données puis apprends le SQL pour savoir utiliser Exporté = true
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
6 oct. 2012 à 01:31
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


                
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
8 oct. 2012 à 18:04
hi Mr cmarcotte j'ai pas pu la résolu
j'attend votre aide si possible
0
Utilisateur anonyme
9 oct. 2012 à 02:22
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.
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
12 oct. 2012 à 21:04
Bonjour,

désolé pour mon exigence mais je me suis bloqué et je n'arrive à résoudre le truc
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
12 oct. 2012 à 21:12
et mon code je l'ai déjà exposé
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
14 oct. 2012 à 00:08
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

                
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
14 oct. 2012 à 02:03
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.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
14 oct. 2012 à 02:06
petite rectification:

Err_:
MsgBox Err.Description



[] Ce qui va sans dire. va mieux en le disant.
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
14 oct. 2012 à 17:51
ç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
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
14 oct. 2012 à 20:06
oui ça marche très bien mais juste je veux une message que si le recordset et vide " pas de cariére à exporter" .
0
saidmansour Messages postés 51 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 octobre 2012
14 oct. 2012 à 20:19
pardon ainsi ilya un problème il n'exporte pas le premier enregistrement
0
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
merci bien c'est résolu
tous marche bien
0
Rejoignez-nous