I'm pretty sure that the RETURN {int} T-SQL command does not return that value in the PARAMETER collection.

I cannot find backup for this in MSDN - I've got a good ADO book at work that I'll check in 30 minutes...

Why are you so stuck on using RETURN {int} and not simply creating a list of INPUT and OUTPUT parameters? My example showed how to do that quite easily.

The error you keep saying you are getting sounds more like a VB/ADO side error - that the object is not properly created and the SPROC isn't even executing.

BTW - we decided at the start of our development project in VB/ADO/SQL that using LONG (VB) and INT (SQL) was the only integer style we would support. DATETIME also - no small datetime. Supporting lots of different datatypes in the PARAMETER logic is too complex.