RTFBox

Alfred_

Erfahrenes Mitglied
Hi,
ich möchte aus einer Datenbank Datensätze in eine RTFBox einlesen.
Funktioniert auch, jedoch nur der letzte Datensatz. Vermutlich werden die vorherigen Datensätze überschrieben, obwohl ich MultiLine auf True gesetzt habe.
Mit vbCrLf wollte ich einen Zeilenumbruch erzwingen. Leider auch ergebnislos.
Wo liegt hier der "Hund" begraben?


Private Sub Starten()
Dim dy1 As Recordset
Set dy1 = db.OpenRecordset("Select * from XYZ ORDER by Nr ASC")
Dim i%
If dy1.RecordCount > 0 Then dy1.MoveFirst
Do While Not dy1.EOF
If IsNumeric(dy1!Z1) = True _
And IsNumeric(dy1!Z2) = True _
And IsNumeric(dy1!Z3) = True _
And IsNumeric(dy1!Z4) = True _
And IsNumeric(dy1!Z5) = True _
And IsNumeric(dy1!Z6) = True Then
RTF1.Text = Format(dy1.Fields("Z1"), "#0") & "," & _
Format(dy1.Fields("Z2"), "#0") & "," & _
Format(dy1.Fields("Z3"), "#0") & "," & _
Format(dy1.Fields("Z4"), "#0") & "," & _
Format(dy1.Fields("Z5"), "#0") & "," & _
Format(dy1.Fields("Z6"), "#0") & vbCrLf
End If
dy1.MoveNext
Loop
End Sub

Ich sage jetzt schon ein herzliches Danke!
Alfred
 
Mit ' RTF1.Text = Format...' bestimmst Du die Eigenschaft TEXT neu, und weist ihr den aktuellen Datensatz zu. Das, was zuvor in der RTF-Box drin stand - also der "alte TEXT - Eigenschafts - Wert " wird überschrieben. Du solltest also nicht nut den neuen Datensatz eintragen, sondern das, was bereits drin steht plus dem, was hinzugfügt werden soll.
 
Hi,

danke für diesen Hinweis. Es ist schön Foren zu finden, in denen nicht "gekackt" und "gepöbelt" wird, sondern sich auf der sachlichen Ebene findet.

Der berichtigte und funktionierende Code lautet wie folgt:

Private Sub Starten()
Dim dy1 As Recordset
Set dy1 = db.OpenRecordset("Select * from XYZ ORDER by Nr ASC")
Dim i%
If dy1.RecordCount > 0 Then dy1.MoveFirst
Do While Not dy1.EOF
If IsNumeric(dy1!Z1) = True _
And IsNumeric(dy1!Z2) = True _
And IsNumeric(dy1!Z3) = True _
And IsNumeric(dy1!Z4) = True _
And IsNumeric(dy1!Z5) = True _
And IsNumeric(dy1!Z6) = True Then
RTF1.Text = RTF1.Text & Format(dy1.Fields("Z1"), "#0") & "," & _
Format(dy1.Fields("Z2"), "#0") & "," & _
Format(dy1.Fields("Z3"), "#0") & "," & _
Format(dy1.Fields("Z4"), "#0") & "," & _
Format(dy1.Fields("Z5"), "#0") & "," & _
Format(dy1.Fields("Z6"), "#0") & vbCrLf
End If
dy1.MoveNext
Loop
End Sub

Nochmals Danke!
Alfred

:-)
 
Zurück