Voilà mon souci :
je balaye une table et j'insère les données dans un fichier. Ce fichier sera
traiter par la suite par une autre appli il doit donc avoir une structure
rigoureuse.
mon problème est que à chaque fois que j'ajoute une ligne à mon fichier :
Print #1, CStr(rstselect![ESTD]) (insertion de ma ligne provenant d'un
recordset) VB ajoute l'information mais saute aussi une ligne.
en définitif j'obtiens mes 5000 lignes de données + un retour à la ligne non
désiré
Comment éviter qu'il saute cette dernière ligne car mon fichier ne doit pas
contenir de saut de ligne à la fin.
voici mon code :
'Write dans le fichier
Open Find_My_Rep & "ESTD\" & filename & datefileextraction & ".txt" For
Output Access Write As #1
REQStr = "select ESTD from " & tablename & ";"
Set rstselect = CurrentDb.OpenRecordset(REQStr)
If rstselect.RecordCount > 0 Then
rstselect.MoveLast
rstselect.MoveFirst
Do While rstselect.EOF = False
Print #1, CStr(rstselect![ESTD])
rstselect.MoveNext
Loop
Else
End If
rstselect.Close
Public Function EcritLigne(nfich As Integer, ligne As String) Dim count& Dim a$ Dim i&
count& = Len(ligne) For i& = 0 To count& Next i& a$ = Chr(13) + Chr(10) Put #nfich, , ligne Put #nfich, , a$
End Function Public Function lituneligne(nfich As Integer) As String Dim ligne$ Dim car$
ligne$ = "" Do While Not (EOF(nfich) Or car$ = Chr(10)) car$ = Input(1, #nfich) If car$ <> Chr(13) And car$ <> Chr(10) Then ligne$ = ligne$ & car$ End If Loop
lituneligne = ligne$ End Function
mj a écrit : > Bonjour à tous, > > Voilà mon souci : > je balaye une table et j'insère les données dans un fichier. Ce fichier sera > traiter par la suite par une autre appli il doit donc avoir une structure > rigoureuse. > > mon problème est que à chaque fois que j'ajoute une ligne à mon fichier : > Print #1, CStr(rstselect![ESTD]) (insertion de ma ligne provenant d'un > recordset) VB ajoute l'information mais saute aussi une ligne. > > en définitif j'obtiens mes 5000 lignes de données + un retour à la ligne non > désiré > > Comment éviter qu'il saute cette dernière ligne car mon fichier ne doit pas > contenir de saut de ligne à la fin. > voici mon code : > > 'Write dans le fichier > Open Find_My_Rep & "ESTD" & filename & datefileextraction & ".txt" For > Output Access Write As #1 > > > REQStr = "select ESTD from " & tablename & ";" > Set rstselect = CurrentDb.OpenRecordset(REQStr) > > If rstselect.RecordCount > 0 Then > rstselect.MoveLast > rstselect.MoveFirst > Do While rstselect.EOF = False > > Print #1, CStr(rstselect![ESTD]) > > rstselect.MoveNext > Loop > Else > End If > rstselect.Close > > Close #1 > > merci de votre aide > mj > >
Bonjour
j'utilise une autre méthode:
a+ christophe
Open Find_My_Rep & "ESTD" & filename & datefileextraction & ".txt" For
binary As #1
REQStr = "select ESTD from " & tablename & ";"
Set rstselect = CurrentDb.OpenRecordset(REQStr)
Public Function EcritLigne(nfich As Integer, ligne As String)
Dim count&
Dim a$
Dim i&
count& = Len(ligne)
For i& = 0 To count&
Next i&
a$ = Chr(13) + Chr(10)
Put #nfich, , ligne
Put #nfich, , a$
End Function
Public Function lituneligne(nfich As Integer) As String
Dim ligne$
Dim car$
ligne$ = ""
Do While Not (EOF(nfich) Or car$ = Chr(10))
car$ = Input(1, #nfich)
If car$ <> Chr(13) And car$ <> Chr(10) Then
ligne$ = ligne$ & car$
End If
Loop
lituneligne = ligne$
End Function
mj a écrit :
> Bonjour à tous,
>
> Voilà mon souci :
> je balaye une table et j'insère les données dans un fichier. Ce
fichier sera
> traiter par la suite par une autre appli il doit donc avoir une
structure
> rigoureuse.
>
> mon problème est que à chaque fois que j'ajoute une ligne à mon
fichier :
> Print #1, CStr(rstselect![ESTD]) (insertion de ma ligne provenant d'un
> recordset) VB ajoute l'information mais saute aussi une ligne.
>
> en définitif j'obtiens mes 5000 lignes de données + un retour à la
ligne non
> désiré
>
> Comment éviter qu'il saute cette dernière ligne car mon fichier ne
doit pas
> contenir de saut de ligne à la fin.
> voici mon code :
>
> 'Write dans le fichier
> Open Find_My_Rep & "ESTD" & filename & datefileextraction & ".txt" For
> Output Access Write As #1
>
>
> REQStr = "select ESTD from " & tablename & ";"
> Set rstselect = CurrentDb.OpenRecordset(REQStr)
>
> If rstselect.RecordCount > 0 Then
> rstselect.MoveLast
> rstselect.MoveFirst
> Do While rstselect.EOF = False
>
> Print #1, CStr(rstselect![ESTD])
>
> rstselect.MoveNext
> Loop
> Else
> End If
> rstselect.Close
>
> Close #1
>
> merci de votre aide
> mj
>
>
Public Function EcritLigne(nfich As Integer, ligne As String) Dim count& Dim a$ Dim i&
count& = Len(ligne) For i& = 0 To count& Next i& a$ = Chr(13) + Chr(10) Put #nfich, , ligne Put #nfich, , a$
End Function Public Function lituneligne(nfich As Integer) As String Dim ligne$ Dim car$
ligne$ = "" Do While Not (EOF(nfich) Or car$ = Chr(10)) car$ = Input(1, #nfich) If car$ <> Chr(13) And car$ <> Chr(10) Then ligne$ = ligne$ & car$ End If Loop
lituneligne = ligne$ End Function
mj a écrit : > Bonjour à tous, > > Voilà mon souci : > je balaye une table et j'insère les données dans un fichier. Ce fichier sera > traiter par la suite par une autre appli il doit donc avoir une structure > rigoureuse. > > mon problème est que à chaque fois que j'ajoute une ligne à mon fichier : > Print #1, CStr(rstselect![ESTD]) (insertion de ma ligne provenant d'un > recordset) VB ajoute l'information mais saute aussi une ligne. > > en définitif j'obtiens mes 5000 lignes de données + un retour à la ligne non > désiré > > Comment éviter qu'il saute cette dernière ligne car mon fichier ne doit pas > contenir de saut de ligne à la fin. > voici mon code : > > 'Write dans le fichier > Open Find_My_Rep & "ESTD" & filename & datefileextraction & ".txt" For > Output Access Write As #1 > > > REQStr = "select ESTD from " & tablename & ";" > Set rstselect = CurrentDb.OpenRecordset(REQStr) > > If rstselect.RecordCount > 0 Then > rstselect.MoveLast > rstselect.MoveFirst > Do While rstselect.EOF = False > > Print #1, CStr(rstselect![ESTD]) > > rstselect.MoveNext > Loop > Else > End If > rstselect.Close > > Close #1 > > merci de votre aide > mj > >