Unanswered: What is the correct position re. ADO errors
I have conflicting statements from MSDN re. ADO errors ffrom the underlying provider in Visual Basic:
1. Error objects are added to the Errors collection on an error from the underlying provider but no error is raised in VB
2. Error objects are added to the Errors collection on an error from the underlying provider and an error is raised in VB also
Errors should always be added to the error collection. Errors should be raised in VB according to a complex series of rules that basically boil down to something like: "Well integrated ODBC data providers will report all errors to the error collection API, and will also report errors that will affect program flow to the trap API". In other words, an error that is informative should appear in the errors collection without triggering a VB error, but errors that prevent normal program flow should also raise a VB error.
Note that these rules are not followed by all ODBC providers. Your milage may vary!
The rules for raising ODBC errors are stated in great detail in the ODBC SDK documentation. This is tough sledding for the average reader, it is intended for someone writing an ODBC driver, usually in a mix of C++ and assembler.