# RecordSet-Daten einzelnund nacheinander in TextBox anzeigen



## sternengucker (28. Dezember 2003)

Hallo,

ich hab ein recordset, dessen Daten ich einzeln und durch klicken eines Buttons nacheinander in einer TextBox sichtbar machen möchte. Das recordset hat eine Spalte aber kann 0 oder (theoretisch) unendlich viele Datensätze enthalten.
(Das ganze soll ein Englischlexikon geben).
Mit einer Schleife haut das Ganze wohl nicht hin. Wenn ich RS.MoveNext in eine Schleife einbaue, dann wird die Schleife bis zum letzten Datensatz durchlaufen und dieser dann auch angezeigt. ( Leuchtet mir ein)
Ich probier jetzt schon bestimmt eine Woche eine Lösung zu finden - aber sch.....
nichts. Ihr seid meine letzte Hoffnung. Danke schon im voraus.


----------



## Andreas Dunstheimer (28. Dezember 2003)

Hi,

probiers mal damit:


```
Dim Cn As New ADODB.connection
Dim RsT As New ADODB.Recordset


Private Sub Command1_Click()
    RsT.MoveNext
    If RsT.EOF = True Then RsT.MoveFirst
    Text1.Text = RsT.Fields(0)
    
End Sub

Private Sub Form_Load()
    Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    Cn.ConnectionString = "Data Source=D:\datenbank.mdb"
    Cn.CursorLocation = adUseClient
    Cn.Open
    With RsT
        .ActiveConnection = Cn
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .Source = "SELECT * FROM Tabelle"
        .Open
        .MoveFirst
        Text1.Text = .Fields(0)
    End With
End Sub
```


Dunsti


----------



## sternengucker (28. Dezember 2003)

Hallo Andreas,

vielen Dank für das Beispiel. Ich habe deinen Code sofort eingebaut, einwenig umgemodelt und das sieht dann so aus:
Private Sub Form_Load()
    Form3.WindowState = 2

    Dim dbs As New ADODB.Connection
    Dim RS As New ADODB.Recordset
    Dim sTabelle As String
    Dim sExcelFile As String
    Dim z As Long
    Dim datum As Date

    sTabelle = "Tabelle1"
    datum = Date
    sExcelFile = "C:\Programme\Microsoft Visual Studio\VB98\Englisch.xls"

    dbs.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
    "Extended Properties = Excel 8.0;" & _
    "Data Source = " & sExcelFile & ";"

    With RS
        .ActiveConnection = dbs
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .Open "Select Vokabel from [" & sTabelle & "$]  where [edatum]= '" & datum & "' or [wiederholung1] = '" & datum & "' or [wiederholung2] = '" & datum & "'or [wiederholung3] = '" & datum & "'or [wiederholung4] ='" & datum & "';", dbs
        .MoveFirst
        tbvokabel.Text = .Fields("Vokabel")
    End With
    RS.MoveLast
    RS.MoveFirst
    z = RS.RecordCount

    Text1 = Format(z, "#,##0 ")
With DataGrid2
    Set .DataSource = RS

End With
End Sub

Private Sub Command1_Click()
    Dim dbs As New ADODB.Connection
    Dim RS As New ADODB.Recordset
    Dim sTabelle As String
    Dim sExcelFile As String

    sTabelle = "Tabelle1"
    datum = Date
    sExcelFile = "C:\Programme\Microsoft Visual Studio\VB98\Englisch.xls"
    dbs.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
    "Extended Properties = Excel 8.0;" & _
    "Data Source = " & sExcelFile & ";"
    Set RS = New ADODB.Recordset
    With RS
        .ActiveConnection = dbs
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
    End With

    RS.Open "Select Vokabel from [" & sTabelle & "$]  where [edatum]= '" & datum & "' or [wiederholung1] = '" & datum & "' or [wiederholung2] = '" & datum & "'or [wiederholung3] = '" & datum & "'or [wiederholung4] ='" & datum & "';", dbs
    RS.MoveNext
    If RS.EOF = True Then RS.MoveLast
    tbvokabel.Text = RS.Fields("Vokabel")

End Sub

Das Problem: Es werden von fünf vorhandenen Datensätzen nur die ersten zwei angezeigt. Beim Laden wird praktisch der erste und beim betätigen des Buttons der zweite Datensatz angezeigt. Danach ist nichts. Kannst du mir vielleicht nochmals helfen. Vielen Dank.


----------



## sternengucker (30. Dezember 2003)

Hallo,

ich hab den Programmiertext noch einmal eingefügt und es funktioniert. Danke nochmals für die schnelle Hilfe.


----------

