Question:
I’ve made a VB ActiveX DLL and defined a class and some methods to perform some database operations. I pass an ADO connection by reference to this class from the calling application.
When I try to set the ADOCommand.activeConnection to the passed in ADO connection inside one of the methods of the class, I get a runtime error 3001.
The error message says, “The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another”.
I checked the ADO Connection that I passed in, and it seems fine. All the properties of connection are correct, and the connection is opened.
Answer:
Instead of accepting an ADO Connection object as your parameter type, accept a Variant instead. You can immediately set the parameter to your internal ADO Connection variable, but this will let the parameter through. I’ve seen this problem a few times when using the DLL with an ASP file. Switching to a Variant took care of the problem each time, and you can always add a little error checking to make sure the right type of object is being passed in.