Уже ставлю если не EOF и bof и все равно получаю ошибку - PullRequest
1 голос
/ 26 июня 2019

Я программирую на Vb.net и использую доступ. Я использовал Adodb для подключения. У меня проблема с eof и bof. Я пытаюсь кодировать таким образом, чтобы программа говорила пользователю, что это уже последняя строка и не может перейти к следующей строке.

Private Sub nav()
        If retVal Then
            lblQuestion.Visible = True

            lblQuestion.Text = rs.Fields("Question").Value
            lblType.Text = rs.Fields("Type").Value
            lblGroup.Text = rs.Fields("Group").Value

            If lblTtype.Text = "d" Then
                txtAnswer.Visible = True
                comboOption.Visible = True
           ElseIf lblTipo.Text = "o" Then
                comboOption.Visible = True
                txtAnswer.Visible = false

            End If
        End If
    End Sub
Private Sub BtnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
        If Not rs.EOF Then
            rs.MoveNext()
            nav()
        Else
            MsgBox("This is the last Question")
        End If
    End Sub

когда он достигает последнего ряда, все равно идет, как будто это не последний ряд. Я имею в виду, что он пытается перейти к следующему ряду, даже с «Если не rs.EOF».

Заранее спасибо.

1 Ответ

1 голос
/ 27 июня 2019

Вы должны проверить также rs.Eof после rs.MoveNext, как будто вы находитесь в последнем ряду и переходите к следующему, вы достигаете rs.Eof, где rs.Fields не содержит данных.

Просто добавьте еще одну проверку перед nav():

Private Sub BtnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
    If Not rs.EOF Then
        rs.MoveNext()
        If Not rs.Eof Then
            nav()
        Else
            rs.MovePrevious()
            MsgBox("This is the last Question")
        End If
     End If
End Sub
...