Loop schreibt mehrfach den gleichen Datensatz

25/11/2007 - 15:29 von Andreas Kugel | Report spam
Hallo,
meine Loop Funktion schreibt mehrfach den gleichen Datensatz in eine
Textdatei.
Die Anzahl der Datensàtze ist zwar richtig und entspricht denen der Abfrage,
der Eintrag entspricht jedoch immer nur dem ersten Datensatz aus meiner
Abfrage.
18 Datensatze unterschiedliche Datensàtze sind vorhanden,
geschrieben wird 18 x der erste.

Mein Code sieht es aus und ich finde den Fehler nicht, kann mir jmand
helfen?

Option Compare Database
Option Explicit
Public Function Textdatei_schreiben()
On Error GoTo Err_Textdatei_schreiben
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim sqlstr As String
Dim sPath As String

Dim strText As String
Dim Platz As String * 18
Dim ShortCode As String * 6
Dim Part_no As String * 16
Dim Bezeichnung As String * 60
Dim strLeer As String * 26

sqlstr = "qry_Montagefolge"

'Pfad wo die Textdatei gespeichert wird
sPath = "D:\"

Set rs = CurrentDb.OpenRecordset(sqlstr)
Platz = rs!Modulplatz
ShortCode = rs!Short_code
Part_no = rs!Part_no
Bezeichnung = rs!Bezeichnung

Platz = Nz(Platz, "")
ShortCode = Nz(ShortCode, "")
Part_no = Nz(Part_no, "")
Bezeichnung = Nz(Bezeichnung, "")
strText = Platz & ": " & ShortCode & Part_no

'Öffnet die Ausgangsdatei schreibt die Montagereihenfolge
Open sPath & "test.txt" For Output As #1

Do While Not rs.EOF
Print #1, strText
Print #1, strLeer & Bezeichnung
rs.MoveNext
Loop
rs.Close
Close #1

GoTo Exit_Textdatei_schreiben

Exit_Textdatei_schreiben:
Exit Function
Err_Textdatei_schreiben:
MsgBox Err.Description, vbCritical, Err.Number
Exit Function
End Function


Gruß
Andreas
 

Lesen sie die antworten

#1 Jens Schilling
25/11/2007 - 15:49 | Warnen spam
hallo, Andreas

Andreas Kugel wrote:
Hallo,
meine Loop Funktion schreibt mehrfach den gleichen Datensatz in eine
Textdatei.
Die Anzahl der Datensàtze ist zwar richtig und entspricht denen der
Abfrage, der Eintrag entspricht jedoch immer nur dem ersten Datensatz
aus meiner Abfrage.
18 Datensatze unterschiedliche Datensàtze sind vorhanden,
geschrieben wird 18 x der erste.

Mein Code sieht es aus und ich finde den Fehler nicht, kann mir jmand
helfen?

Option Compare Database
Option Explicit
Public Function Textdatei_schreiben()


[SNIP]

Die Wertzuweisung an Deine Variablen erfolgt hier, .

Set rs = CurrentDb.OpenRecordset(sqlstr)
Platz = rs!Modulplatz
ShortCode = rs!Short_code
Part_no = rs!Part_no
Bezeichnung = rs!Bezeichnung

Platz = Nz(Platz, "")
ShortCode = Nz(ShortCode, "")
Part_no = Nz(Part_no, "")
Bezeichnung = Nz(Bezeichnung, "")
strText = Platz & ": " & ShortCode & Part_no

'Öffnet die Ausgangsdatei schreibt die Montagereihenfolge
Open sPath & "test.txt" For Output As #1



... und in dieser Schleife ànderst Du die Werte nicht mehr, so dass also
immer wieder der gleiche Wert geschrieben wird.
Weise den Variablen den Wert in der Schleife zu.

Do While Not rs.EOF



Hier musst die Variablen mit Werte füllen !

Print #1, strText
Print #1, strLeer & Bezeichnung
rs.MoveNext
Loop
rs.Close
Close #1



Gruss Jens

Ähnliche fragen