Let me tell you about my morning:
- So, Friday brought us a bit of file corruption on the database, resulting in this nifty problem where it wouldn't know where the data entry form wouldn't know where to put changes to the SerialNumbers table if the string you entered began with the letter T and was not followed by a space. Not making this up - that's how far I narrowed it down. If you opened the table directly, there was one line a few pages in, where every field contained an error. Moving the mouse over this line would instantly produce an "Invalid Bookmark" error, thus preventing you from editing or deleting this line.
Made a copy of the backend file, where all the data lives. Ran "compact and repair database" on that, and the symptoms described above went away. Opening the Serials table now reveals 30 lines of garbage that weren't there before, and they're quickly deleted.
Problem solved, right?
Well, not really. See, there was ALSO file corruption in the .LDB "lock" file. So, when you try the compact/repair thing on the original database, it refuses to proceed because another user (whose computer isn't even on) maintains exclusive control over one or more tables. And modifications to that file are disallowed by the operating system, per Access' instructions.
Resolving that meant several hours of nobody getting any work done while we tried to wrest control away from the server. Not a problem on our Win2K boxes, but this one's Linux, and our root password turned out to be invalid. Also, our new and old network administrators want nothing to do with each other, which shifts things to a more political realm. Things got further complicated when the domain controller decided to protect itself from what was obviously a security violation in progress, and disallowed users from going anywhere near the server in question.
That's all fixed now. The corrupt entry was converted to thirty less corrupt entries, and deleted. All is good with the world.
...except, we have no way of knowing how much information used to be in that table. Because the daily backup wasn't done last week. And the most recent one we could find didn't actually include the database. In fact, it turns out the most recent known backup is only current as of August.
So. Those thirty lines of corruption might represent thirty lost entries. Or one lost entry. Or three hundred. We really won't know for sure until it's time to write checks next month, and all the amounts come out wrong.
Heads will roll.
(in related news, Lauren shows up on the 6th. I won't be able to pick her up at the airport, and the current itinerary has me missing the bulk of her visit.)