While the NewPassword call might return a value, you don't have to catch it ... the code worked perfectly on my machine, however this was on a 2003 database. You might need to run this from a different environment, with a reference set to the DAO 3.5 library, since that's what 97 used.