jwcolby
jwcolby at colbyconsulting.com
Wed May 27 10:25:53 CDT 2009
I have an interesting situation. I am working on a database where numeric data is scanned into a table from paper. The original author had developed queries to replace all I with 1, all l with 1 etc (characters replaced with numbers). There is a whole series of these queries, replacing anything that looks like a zero but is actually alpha with a zero and anything that looks like a 1 but is actually alpha with a number one. If I try to perform a db.execute and set dbFailOnError a hand full of these queries fail. If I take off the dbFailOnError the queries execute but the Records Affected property reports a zero. Now I have intentionally seeded a specific column with alpha characters, and the queries do in fact fix the alpha (replaces with number) but the Records Affected still reports a zero. Shouldn't the RecordsAffected report the actual number of records updated? And what's up with the failure if I use dbFailOnError. The error reported is "data type mismatch in criteria". At first when I tried this I would get a failure of the query even when run manually. I narrowed it down to the last three columns which were empty (maybe literally). I modified the table to place a default empty string "" as data was appended into the table and now the query runs manually but will still fail when dbFailOnError is applied. The code: db.Execute "qryFix6_Correct_O", dbFailOnError Debug.Print "Correct 0 - Records Affected: " & db.RecordsAffected The query: UPDATE Import SET Import.Field1 = Replace([Field1],"O","0"), Import.Field3 = Replace([Field3],"O","0"), Import.Field4 = Replace([Field4],"O","0"), Import.Field5 = Replace([Field5],"O","0"), Import.Field6 = Replace([Field6],"O","0"), Import.Field7 = Replace([Field7],"O","0"), Import.Field8 = Replace([Field8],"O","0"), Import.Field9 = Replace([Field9],"O","0"), Import.Field10 = Replace([Field10],"O","0"), Import.Field11 = Replace([Field11],"O","0"), Import.Field12 = Replace([Field12],"O","0"); Again, the queries do run if I remove the dbFailOnError and they do "fix up" the data correctly, but they incorrectly report zero records affected after fixing up the data. I do so love Access. -- John W. Colby www.ColbyConsulting.com