BOF gibt den WERT False aus obwohl der Zeiger am ersten Datensatz steht...

  • VB6

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

    BOF gibt den WERT False aus obwohl der Zeiger am ersten Datensatz steht...

    Hallo,

    ich möchte über den Befehl

    Visual Basic-Quellcode

    1. If RSFahrzeugdaten.BOF Then
    2. cmdZurueck.Visible = False
    3. cmdZurueckzumAnfang.Visible = False
    4. Else
    5. cmdZurueck.Visible = True
    6. cmdZurueckzumAnfang.Visible = True
    7. End If


    erreichen, dass die beiden Zurückbuttons unsichtbar werden, wenn er am Anfang des Datensatzes steht.

    Das funktioniert aber nicht, da der Befehl

    Visual Basic-Quellcode

    1. RSFahrzeugdaten.BOF
    den Wert False zurück gibt. Das kann aber nicht stimmen, da er den ersten Datensatz anzeigt und davor gibt es keine weiteren.

    Kann mir einer sagen, wieso das so ist ?


    Achso falls es nützlich ist hier der ganze code

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private DB As DAO.Database 'Datenbank
    3. Private RSFahrzeugdaten As DAO.Recordset 'Tabelle
    4. Private RSModelldaten As DAO.Recordset 'Tabelle
    5. Dim intFahrzeugNr%, intModellNr%, intPreis%, intBaujahr%, intKennzeichen%, intLeistung%
    6. Dim intHubraum%, intGeschwindigkeit%, intGewicht%
    7. Dim sngBeschleunigung As Single
    8. Dim byteZylinder As Byte
    9. Dim dateAngeschafftAm As Date
    10. Dim strFarbe$, strModellname$, strHerkunftsland$
    11. Private Sub cmdSuchen_Click()
    12. intFahrzeugNr = CInt(txtFahzeugNr.Text)
    13. With RSFahrzeugdaten
    14. .Index = "FahrzeugNrIndex" 'Sucht nach dem Index
    15. .Seek Chr(61), intFahrzeugNr 'Sucht nach der FahrzeugNr
    16. If Not .NoMatch Then 'Gibt die restlichen Daten aus
    17. txtModellNr.Text = !ModellNr
    18. txtAngeschafft.Text = !AngeschafftAm
    19. txtFarbe.Text = !Farbe
    20. txtPreis.Text = !Preis
    21. txtBaujahr.Text = !Baujahr
    22. txtKennzeichen.Text = !Kennzeichen
    23. Else
    24. Call MsgBox("Leider nicht gefunden!", vbCritical, "Fehler")
    25. End If
    26. End With
    27. With RSModelldaten
    28. .Index = "ModellNrIndex"
    29. .Seek Chr(61), intModellNr
    30. If Not .NoMatch Then
    31. txtModellname.Text = !ModellName
    32. txtHerkunftsland.Text = !Herkunftslandkürzel
    33. txtLeistung.Text = !Leistung
    34. txtHubraum.Text = !Hubraum
    35. txtZylinder.Text = !Zylinder
    36. txtGeschwindigkeit.Text = !Geschwindigkeit
    37. txtBeschleunigung.Text = !Beschleunigung
    38. txtGewicht.Text = !Gewicht
    39. txtHersteller.Text = !Hersteller
    40. Else
    41. Call MsgBox("Leider nicht gefunden!", vbCritical, "Fehler")
    42. End If
    43. End With
    44. End Sub
    45. Private Sub cmdVor_Click()
    46. ' Nächster Datensatz wird angezeigt
    47. RSFahrzeugdaten.MoveNext
    48. RSModelldaten.MoveNext
    49. Call UpdateList
    50. End Sub
    51. Private Sub cmdVorZumEnde_Click()
    52. ' Letzter Datensatz wird angezeigt
    53. RSFahrzeugdaten.MoveLast
    54. RSModelldaten.MoveLast
    55. Call UpdateList
    56. End Sub
    57. Private Sub cmdZurueck_Click()
    58. ' Vorheriger Datensatz wird angezeigt
    59. RSModelldaten.MovePrevious
    60. RSFahrzeugdaten.MovePrevious
    61. Call UpdateList
    62. End Sub
    63. Private Sub cmdZurueckzumAnfang_Click()
    64. ' Erster Datensatz wird angezeigt
    65. RSFahrzeugdaten.MoveMoveFirst
    66. RSModelldaten.MoveFirst
    67. Call UpdateList
    68. End Sub
    69. Private Sub Form_Load()
    70. ' Öffnet die Verbindung zur Datenbank und setzt die Recordsets
    71. Set DB = OpenDatabase(App.Path & "\Fuhrpark2.mdb")
    72. Set RSFahrzeugdaten = DB.OpenRecordset("Fahrzeugdaten", dbOpenTable)
    73. Set RSModelldaten = DB.OpenRecordset("Modelldaten", dbOpenTable)
    74. If Not RSFahrzeugdaten.EOF Then
    75. txtFahzeugNr.Text = RSFahrzeugdaten!FahrzeugNr
    76. txtModellNr.Text = RSFahrzeugdaten!ModellNr
    77. txtAngeschafft.Text = RSFahrzeugdaten!AngeschafftAm
    78. txtFarbe.Text = RSFahrzeugdaten!Farbe
    79. txtPreis.Text = RSFahrzeugdaten!Preis
    80. txtBaujahr.Text = RSFahrzeugdaten!Baujahr
    81. txtKennzeichen.Text = RSFahrzeugdaten!Kennzeichen
    82. End If
    83. If Not RSModelldaten.EOF Then
    84. txtModellname.Text = RSModelldaten!ModellName
    85. txtHerkunftsland.Text = RSModelldaten!Herkunftslandkürzel
    86. txtLeistung.Text = RSModelldaten!Leistung
    87. txtHubraum.Text = RSModelldaten!Hubraum
    88. txtZylinder.Text = RSModelldaten!Zylinder
    89. txtGeschwindigkeit.Text = RSModelldaten!Geschwindigkeit
    90. txtBeschleunigung.Text = RSModelldaten!Beschleunigung
    91. txtGewicht.Text = RSModelldaten!Gewicht
    92. txtHersteller.Text = RSModelldaten!Hersteller
    93. End If
    94. If RSFahrzeugdaten.BOF Then
    95. cmdZurueck.Visible = False
    96. cmdZurueckzumAnfang.Visible = False
    97. Else
    98. cmdZurueck.Visible = True
    99. cmdZurueckzumAnfang.Visible = True
    100. End If
    101. End Sub
    102. Sub UpdateList()
    103. On Error GoTo Fehler ' Bei einem RUNTIME ERROR springt er zum Fehler
    104. If Not RSFahrzeugdaten.EOF Then
    105. txtFahzeugNr.Text = RSFahrzeugdaten!FahrzeugNr
    106. txtModellNr.Text = RSFahrzeugdaten!ModellNr
    107. txtAngeschafft.Text = RSFahrzeugdaten!AngeschafftAm
    108. txtFarbe.Text = RSFahrzeugdaten!Farbe
    109. txtPreis.Text = RSFahrzeugdaten!Preis
    110. txtBaujahr.Text = RSFahrzeugdaten!Baujahr
    111. txtKennzeichen.Text = RSFahrzeugdaten!Kennzeichen
    112. End If
    113. If Not RSModelldaten.EOF Then
    114. txtModellname.Text = RSModelldaten!ModellName
    115. txtHerkunftsland.Text = RSModelldaten!Herkunftslandkürzel
    116. txtLeistung.Text = RSModelldaten!Leistung
    117. txtHubraum.Text = RSModelldaten!Hubraum
    118. txtZylinder.Text = RSModelldaten!Zylinder
    119. txtGeschwindigkeit.Text = RSModelldaten!Geschwindigkeit
    120. txtBeschleunigung.Text = RSModelldaten!Beschleunigung
    121. txtGewicht.Text = RSModelldaten!Gewicht
    122. txtHersteller.Text = RSModelldaten!Hersteller
    123. End If
    124. Exit Sub
    125. Fehler:
    126. Call MsgBox("Es ist ein Fehler aufgetreten" & vbCrLf & "Fehlernummer: " & Err.Number & _
    127. vbCrLf & "Fehlerbeschreibung: " & Err.Description, vbCritical, "Fehler")
    128. End Sub
    Recordset.BOF: Returns a value that indicates whether the current record position is before the first record in a Recordset object.
    msdn.microsoft.com/en-us/library/office/ff823092.aspx
    Wird also erst gesetzt wenn du beim ersten Record ein MovePrevious machst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --