Request object error 'ASP 0105 : 80004005' ( Index out of range )

A

Andy

hI,
wOULD PLEASE HELP ME. I AM GETTIGN THE REQUEST OBJECT ERROS ASP 0105:
80004005 INDEX OUT OF RANGE ERROR. HERE IS THE SNIPPET OF CODE THAT I
AM USING. WHAT IS WRONG HERE? YOU CAN SEE WHAT I AM TRYING TO DO ADN
ERROR ON THIS LINK: http://www.walani.com/ProjectFiles/01_main.asp.

PLEASE HELP

<%
Dim iQuestions 'Holds the question
Dim nScore ' Holds the number of answer

'Set nScore to highest possible score
nScore = 3

iQuestions = 1
While Not objRS.EOF

'==================THIS IS WHERE THE ERROR IS
If Request.Form(objRS("QID")) = objRS("QCorrectAnswer") Then
bRightWrong = 1
Else
bRightWrong = 0
'~~~~~Set minus by number For how much Is counted off For Each
question~~~~~~
nScore = nScore - 1

End If
'~~~~Save the answers and grade to each question~~~~~~
strSQL = "INSERT INTO tblStudentTests
(STUserID,STQID,STAnswer,STRightWrong) VALUES ('" &
Request.Cookies("LoginData")("Login") & "@" &
Request.Cookies("LoginData")("Pass") & "', " & objRS("QID") & ",'" &
Request.Form(objRS("QID")) & "','" & bRightWrong & "')"
objConn.Execute(strSQL)

'~~~~~Show Question with Student answer and Grade~~~~~~
Response.Write(iQuestions & ". " & objRS("QQuestion") & ":<BR>")
Response.Write("Your Answer: " & Request.Form(objRS("QID")) & "<BR>")
Response.Write("<B>" & bRightWrong & "</B><BR><BR>")
objRS.MoveNext
iQuestions = iQuestions + 1
wend
%>


ANDY
 
B

Bob Barrows

When I saw the all-caps, I almost deleted the message without reading it.
Please do not shout in the future. It makes your message hard to read. See
below for my response:
While Not objRS.EOF

'==================THIS IS WHERE THE ERROR IS

To be able to help you, we need to know what is contained in objRS("QID")
and the names and values of your form variables in Request. So do this:

Response.Write "QID contains :" & objRS("QID") & "<BR>"
Response.Write "The Form collection contains:<BR>"
for each key in Request.Form
Response.Write key & ": " & Request.Form(key) & "<BR"
next
response.end

If running this fails to show you what's wrong, post the results back here
so we can look at it.

Bob Barrows
 
A

Andy K

Thanks bob. I have done what you suggested and here are the results from
your suggested code

QID contains :1
The Form collection contains:
1: Junkyard Wars<BR2: In my car<BR31: programming Language<BR

It looks like in the collection it is reading the second line before the
first one. I have checked in my database and th tables are linked
accordingly. One table has a list of questions with the correct answer.
Another table has a list of possible answers and i have linked this
using the question ID
Thanks once again.
What is wrong?
 
A

Andy K

Thanks Bob here are the results of what you suggested. It seems to work
as it picks up the correct object
QID contains :2
The Form collection contains:
1: Active Server Pages
2: In my car
31: Don’t know

So what can be wrong then?
Thanks in advance for your help.

Andy
 
B

Bob Barrows

Andy said:
Thanks Bob here are the results of what you suggested. It seems to
work
as it picks up the correct object
QID contains :2
The Form collection contains:
1: Active Server Pages
2: In my car
31: Don’t know

So what can be wrong then?
Thanks in advance for your help.

Andy

I suspect that in this line:

If Request.Form(objRS("QID")) = objRS("QCorrectAnswer") Then

the content of objRS("QID") is being interpreted as a number (why are you
using numbers for your form field names?) instead of a string, so instead of
looking for a form variable named "31", it's looking for the 31st item in
the form variables collection, which just isn't there.

As an initial try at working around this, you might try this:

If Request.Form(CStr(objRS("QID"))) = objRS("QCorrectAnswer") Then

If that does not work, then I suggest adding an alpha character to your form
field names, so that instead of being named 1,2,31, they are named f1, f2.
f31. This will allow you to do this:

If Request.Form("f" & objRS("QID")) = objRS("QCorrectAnswer") Then


HTH,
Bob Barrows
 
A

Andy K

Bob,
I triedn converting the whole thing to a string as you suggested adn
that doesn't work as well.
Infact in my form name field is the same as the QID, which is an
AutoNumber in the access database. This is how I have assigned it.
Response.Write("<INPUT TYPE='radio' NAME='" & objRS("QID") & " VALUE='"
& objRS2("AAnswer") & "'>" & objRS2("AAnswer") & "<BR>")

This is on a different form.

Any Ideas, Thanks Bob
 
A

Andy K

Thanks Bob,
It worked as you suggested. I had to conver everythign to string.

great, many thanks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top