Recordset.Count = 0

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von _PASCAL_.

    Recordset.Count = 0

    Hi,

    ich verstehs nicht mehr ... ich will einen Recordset erzeugen aus einer datenbank
    doch komischerweise führt die SQL Abfrage zu RecordCount=0 aber im Datenbank Designer von VB6 bekomm ich einen Recordset wenn ich den gleiche SQL String ausführe ...

    der übergebene String sieht so aus:

    Visual Basic-Quellcode

    1. "SELECT Sachbearbeiter.Sachbearbeiter FROM Sachbearbeiter, Zeit_Bearb, Auto WHERE Sachbearbeiter.SachbearbeiterID = Zeit_Bearb.SachbearbeiterID AND Zeit_Bearb.AutoID = Auto.AutoID AND Auto.Auto LIKE 'AMG5 TH5%'"

    Visual Basic-Quellcode

    1. private con2 as ADODB.Connection
    2. ' ADODB-Recordset erstellen
    3. Public Function dbRecordset_Planung(ByVal sSQL As String) As ADODB.Recordset
    4. Dim conString As String
    5. Dim CursorType As ADODB.CursorTypeEnum
    6. Dim LockType As ADODB.LockTypeEnum
    7. Dim CursorLocation As ADODB.CursorLocationEnum
    8. CursorType = adOpenDynamic
    9. LockType = adLockOptimistic
    10. CursorLocation = adUseClient
    11. conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & args(5) & ";Mode=Read;Persist Security Info=False;"
    12. Set con2 = New ADODB.Connection
    13. con2.ConnectionString = conString
    14. con2.Open
    15. Set dbRecordset_Planung = New ADODB.Recordset
    16. With dbRecordset_Planung
    17. .CursorLocation = CursorLocation
    18. .Open sSQL, con2, CursorType, LockType
    19. End With
    20. End Function

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „_PASCAL_“ ()

    ist ein altes Problem mit Recordcount, dass es 0 zurückgibt, obwohl es datensätze gibt. Er zählt erst richtig wenn der Curser sich einmal bis zum Ende der Datensatzgruppe bewegt hat.
    Also ein einfachens movelast könnte schon reichen und dann eben wieder zurück movefirst.
    oke danke ... werde ich mir merken ...


    ich habe jetzt einfach in der funktion ... schon das rs.Field ausgelesen und gleich dort in Date umgewandelt und nur das zurückgegeben von der funktion ...

    das funktioniert und da ich nur das benötige reicht es aus ..

    aber danke für den Tipp ;)