Move to the next question and return to the previous question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mohammed Mazid

    Move to the next question and return to the previous question

    Can anyone please help me on how to move to the next and previous
    question?

    Here is a snippet of my code:

    Private Sub cmdNext_Click()
    End Sub

    Private Sub cmdPrevious_Cli ck()
    showrecord
    End Sub

    Private Sub Form_Load()
    Dim i As Integer
    For i = 0 To 3
    Check1(i).BackC olor = RGB(255, 255, 255)
    Next
    temstr = App.Path + "\testengine.md b"
    Set db = OpenDatabase(te mstr)
    initialise
    End Sub
    Sub initialise()
    Dim i As Integer
    Dim j As Integer
    j = 0
    Set rs = db.OpenRecordse t("Select QuestionNo From QMultiple Where
    Selected = True Order By QuestionNo")
    rs.MoveFirst
    While rs.EOF = False
    j = j + 1
    selquestion(j) = rs!questionno
    rs.MoveNext
    Wend
    showrecord (1) 'Show first question
    End Sub

    Function quizscore() As Integer 'Returnes user's current score
    Dim score As Integer
    Dim i As Integer
    For i = 1 To 20
    Set rs = db.OpenRecordse t("select solution from qmultiple where
    questionno=" & selquestion(i))
    If rs!solution = attempted(i - 1) Then
    score = score + 1
    Next
    quizscore = score
    End Function
    Sub showrecord(n As Integer) 'Displays question with qno=n
    Set rs = db.OpenRecordse t("select * from qmultiple where questionno="
    & selquestion(n))
    With frmQuiz
    ..lblQuestion = rs!question
    ..Check1(0).Cap tion = rs!ans1
    ..Check1(0).Val ue = Val(Mid(attempt ed(n - 1), 1, 1))
    ..Check1(1).Cap tion = rs!ans2
    ..Check1(1).Val ue = Val(Mid(attempt ed(n - 1), 2, 1))
    ..Check1(2).Cap tion = rs!ans3
    ..Check1(2).Val ue = Val(Mid(attempt ed(n - 1), 3, 1))
    ..Check1(3).Cap tion = rs!ans4
    ..Check1(3).Val ue = Val(Mid(attempt ed(n - 1), 4, 1))
    ..lblQNo.Captio n = n
    End With
    End Sub

    I want to move to the next question using the cmdNext button and move
    to the last question using the cmdPrevious button.

    Thanks guys.
  • Raoul Watson

    #2
    Re: Move to the next question and return to the previous question


    "Mohammed Mazid" <kadmazid@hotma il.com> wrote in message
    news:7cfd7b4a.0 401310328.42edb 593@posting.goo gle.com...[color=blue]
    > Can anyone please help me on how to move to the next and previous
    > question?
    >[/color]

    Private Sub cmdNext_Click()
    rs.MoveNext
    End Sub

    Private Sub cmdPrevious_Cli ck()
    rs.MovePrevious
    End Sub



    Comment

    • Mohammed Mazid

      #3
      Re: Move to the next question and return to the previous question

      Although this approach is possible, my initial thoughts were using the
      showrecord() function. I want to use the recordset object from that
      function but can someone guide me how to.

      Cheers.


      "Raoul Watson" <WatsonR@Intell igenCIA.com> wrote in message news:<aaPSb.329 0$KV5.3261@nwrd ny01.gnilink.ne t>...[color=blue]
      > "Mohammed Mazid" <kadmazid@hotma il.com> wrote in message
      > news:7cfd7b4a.0 401310328.42edb 593@posting.goo gle.com...[color=green]
      > > Can anyone please help me on how to move to the next and previous
      > > question?
      > >[/color]
      >
      > Private Sub cmdNext_Click()
      > rs.MoveNext
      > End Sub
      >
      > Private Sub cmdPrevious_Cli ck()
      > rs.MovePrevious
      > End Sub[/color]

      Comment

      • Raoul Watson

        #4
        Re: Move to the next question and return to the previous question


        "Mohammed Mazid" <kadmazid@hotma il.com> wrote in message
        news:7cfd7b4a.0 401311031.7e0e5 b0e@posting.goo gle.com...[color=blue]
        > Although this approach is possible, my initial thoughts were using the
        > showrecord() function. I want to use the recordset object from that
        > function but can someone guide me how to.
        >
        > Cheers.
        >[/color]

        Your showrecord function builds a data set (your SQL "Select ..." statement)

        To do this everytime someone moves to the previous or next record is GROSSLY
        inefficient and is not doable using your code because ecverytime you go to
        show2record, you destroy the dataset (by building another one).

        If you want to do it this way, you need to build two dataset (one that will
        remain untouched) and one for your showrecord (again, it's not efficient to
        do it this way).

        If you have two datasets, assuming the original one is "rs" then all you
        need is (if you don't want to use MoveNext and MovePrevious)::

        rs.AbsolutePosi tion + 1 (for next) and
        rs.Recordset.Ab solutePosition - 1 (for previous, ensuring you're not
        already on number 1)


        Comment

        • Raoul Watson

          #5
          Re: Move to the next question and return to the previous question


          "Mohammed Mazid" <kadmazid@hotma il.com> wrote in message
          news:7cfd7b4a.0 401311031.7e0e5 b0e@posting.goo gle.com...[color=blue]
          > Although this approach is possible, my initial thoughts were using the
          > showrecord() function. I want to use the recordset object from that
          > function but can someone guide me how to.
          >
          > Cheers.[/color]

          Your showrecord function builds a data set (your SQL "Select ..." statement)

          To do this everytime someone moves to the previous or next record is GROSSLY
          inefficient and is not doable using your code because ecverytime you go to
          show2record, you destroy the dataset (by building another one).

          If you want to do it this way, you need to build two dataset (one that will
          remain untouched) and one for your showrecord (again, it's not efficient to
          do it this way).

          If you have two datasets, assuming the original one is "rs" then all you
          need is (if you don't want to use MoveNext and MovePrevious)::

          rs.AbsolutePosi tion + 1 (for next) and
          rs.Recordset.Ab solutePosition - 1 (for previous, ensuring you're not
          already on number 1)



          Comment

          Working...