RS Loop - Numeric value out of range (null)

A

Adotek

Hi All,

I am getting this error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver]Numeric value out of range
(null)
/database/data_entry.asp, line 90

Line 90 is shown below...

// count the total records by iterating through the recordset
for (rsProducts_total=0; !rsProducts.EOF; rsProducts.MoveNext())
{ <---- Line 90
rsProducts_total++;
}

This is an access database, connected to via a DSN.

Any help will be muchly appreciated! I'm stuck on this one!

Thanks!
Simon.
 
B

Bob Barrows [MVP]

Adotek said:
Hi All,

I am getting this error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver]Numeric value out of range

Nothing to do with your problem, but:
http://www.aspfaq.com/show.asp?id=2126
(null)
/database/data_entry.asp, line 90

Line 90 is shown below...

// count the total records by iterating through the recordset
for (rsProducts_total=0; !rsProducts.EOF; rsProducts.MoveNext())
{ <---- Line 90
rsProducts_total++;
}
I see nothing here that would cause your odbc driver to return an "out
of range" error. At this point in your code, results have already been
retrieved into your recordset so there should be nothing here for the
database engine or the odbc driver to complain about/
I can only assume that you are mistaken as to which line is actually
line 90. Do some error-trapping so you can determine the actual source
of your error.

However, I will say: this is an insa... I mean ... this is not the
recommended way to get a record count. If all you are doing is counting
the records, then you need to let the database engine do it for you:

sql="select count(*) from table where ... ";
set rs = conn.execute(sql,0,1);
rsProducts_total=rs(0).value;
 
A

Adotek

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC MicrosoftAccessDriver]Numericvalueoutofrange

Nothing to do with your problem, but:http://www.aspfaq.com/show.asp?id=2126
Yup - Agree! I would do it that way. In this case I am fixing someone
elses code.

line 90. Do some error-trapping so you can determine the actual source
of your error.
How can I error trap in any more detail? Advice here would be
appreciated.
However, I will say: this is an insa... I mean ... this is not the
recommended way to get a record count. If all you are doing is counting
the records, then you need to let the database engine do it for you:

sql="select count(*) from table where ... ";
set rs = conn.execute(sql,0,1);
rsProducts_total=rs(0).value;
Again, I agree...no need to loop! (Not my code!)

Thank you for your reply.
 
B

Bob Barrows [MVP]

Adotek said:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC MicrosoftAccessDriver]Numericvalueoutofrange

Nothing to do with your problem,
but:http://www.aspfaq.com/show.asp?id=2126
Yup - Agree! I would do it that way. In this case I am fixing someone
elses code.

line 90. Do some error-trapping so you can determine the actual
source
of your error.
How can I error trap in any more detail? Advice here would be
appreciated.

use try ... catch around each line of code that could be generating this
error. I strongly suspect it is earlier in the process, bpresumably when the
recordset is being opened. If you can confirm this, then you need to
concentrate on the sql statement being used to open the recordset. First
step would be to run that sql statement in Access using the Query Builder.
 

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,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top