The real cause of the problem was that the first error occured after a transaction was begun with Conn.BeginTrans and the error caused the script to end before CommitTrans or RollbackTrans could be called.
It is interesting that afterwards no records could be inserted, not even into a table that was not affected during the transaction. Seems that all tables are locked during a transaction. Seems also that open transactions are never rolled back automatically. So if a transaction was opened and for some reason it is not closed, you are not able to add any records to any table in the access database until you reset IIS.
Of course, the best solution is to trap the error and to do a Rollback.
Do ASP scripts always run to the end or are they terminated as soon as the client navigates to another page or closes his browser window ? If they are prematurely terminated, the script will not be able to do a rollback any more and the same situation will arise.
Client scripts to check user input are user friendly, but you should not rely on them, because they may have been disabled in the client browser. In general, you should not trust any data you get from the client without having checked it on the server ;-)
Thank you for your help, I appreciate it very much.
ai