Solved

ASP error '80020009'

Posted on 2009-07-01
5
415 Views
Last Modified: 2012-05-07
Hello,

I have a code that used to work! now for some reason not any more!
all I get after clicking update is

error '80020009'

/academics/timetable_admin/tt_edit_2.asp, line 73

and it dose the update !!!
but it stops and will not continue the rest of the code (showing the table with updated data)

any clue ?
55 '============================================================
56 ' Fix and update the timetable Day based on the Day type
57 sql_str = "SELECT timetable_description.start_date, timetable_description.end_date, timetable_descrip
tion.rotation, timetable_description.start_day FROM timetable_description WHERE timetable_description.id="&tt
_id
58 Set RY = Server.CreateObject("ADODB.Recordset")
59 RY.Open sql_str, objConn, adOpenKeyset, adLockOptimistic
60
61 curDate = CDATE(RY("start_date"))
62 endDAte = CDATE(RY("end_date"))
63 curDay = RY("start_day")
64 rotation = RY("rotation")
65
66 Set RX = Server.CreateObject("ADODB.Recordset")
67 DO While curDate <= endDAte
68
69 sql_str = "SELECT timetable_days.day, timetable_days.type FROM timetable_days WHERE timetable_day
s.date = #"&curDate&"# AND timetable_days.tt_id="&tt_id
70
71 RX.Open sql_str, objConn, adOpenDynamic, adLockOptimistic
72
73 IF RX("type") = 10 THEN
74 RX("day") = curDay
75
76 curDay = CurDay + 1
77 IF curDay > rotation THEN
78 curDay = 1
79 END IF
80
81 ELSE
82 RX("day") = 0
83 END IF
84
85 RX.Update
86 RX.Close
87
88 curDate = dateadd("d",1,CDATE(curDate))
89
90 LOOP
91
92 '==============================================================

Open in new window

0
Comment
Question by:Data-Base
  • 2
  • 2
5 Comments
 
LVL 39

Expert Comment

by:thenelson
ID: 24753652
Did the error message provide a description? When you click on debug, which line is highlighted?

0
 
LVL 26

Accepted Solution

by:
Shaun Kline earned 500 total points
ID: 24753695
Check out this page: http://classicasp.aspfaq.com/general/why-do-i-get-80020009-errors.html.
Based on the line number provided in the error message, I would guess that your query brought back no data. It is good practice to always verify that data has been returned. See attached code.

If Not RX.BOF And Not RX.EOF Then
  IF RX("type") = 10 THEN
    RX("day") = curDay
    curDay = CurDay + 1
    IF curDay > rotation THEN
      curDay = 1
    END IF
  ELSE
    RX("day") = 0
  END IF
  RX.Update
END IF

Open in new window

0
 

Author Comment

by:Data-Base
ID: 24756925
Hello Thank you

thenelson , That is the only Error message I got!


Shaun_Kline, your code worked, how I did not notice that!
now can I use as the example below? I usually use it to check.

change "If Not RX.BOF And Not RX.EOF Then" with "If RX.RecordCount > 0 Then" ?

and witch one is better?
If RX.RecordCount > 0 Then
  IF RX("type") = 10 THEN
    RX("day") = curDay
    curDay = CurDay + 1
    IF curDay > rotation THEN
      curDay = 1
    END IF
  ELSE
    RX("day") = 0
  END IF
  RX.Update
END IF

Open in new window

0
 
LVL 26

Expert Comment

by:Shaun Kline
ID: 24757195
The one issue that can occur, depending on the type of data source you are using, is that RecordCount is not always populated. (I forget what version of ADO and what data source it was that I ran into this issue.) Checking for BOF and EOF (and truthfully, I only checked for EOF) seems to be consistent.
0
 

Author Closing Comment

by:Data-Base
ID: 31598742
Thanks allot :-)
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question