P
Petr Danes
I've messed up a DB rather royally, I suspect. It's a long-term conversion
project, where I'm importing a bunch of pretty garbaged manual entries and
trying to integrate them into a functional database. There are literally
hundreds of queries that fiddle with the data as it's read in, some that
clear or drop tables to prepare for the next attempt and VBA code that
executes the queries. They are named and numbered in a systematic fashion,
and I wrote a routine that executes queries by groups.
As anyone who has done this sort of project knows, this repeated reading in,
clearing, reading in again, clearing again, over and over, causes a serious
amount of DB bloat. I normally close with a C&R every so often, to reduce
the size back to normal, but yesterday, during a full day's worth of
thrashing this thing, I neglected to do so and around 11pm, it ran over max
to almost 2.1 GB and locked up. Naturally, it's also been several days since
I made a backup, which I normally do pretty religiously.
The tables and queries I managed to drag and drop to a new, empty DB, but
most of the forms and almost all of the code is inaccessible. The VBA editor
won't even open and all attempts to do a C&R cause an error, where Access
advises me that it has detected corruption, that I should make a backup copy
and do a compact and repair.
I've tried all the usual stuff:
Compact and repair manually - error message.
Set the 'Compact on close' option - error message instead of options dialog.
Decompile - error message.
Import from another DB - error message.
Drag and drop into another DB - error message.
Does anyone know any tricks for getting stuff out of a mess like this? I've
been looking at it with a hex editor, there seems to be a lot of ballast
that I could cut away. Maybe if I got it back under 2GB it would recover
enough to let me extract at least something. I've managed to hack Word
documents where the VBA code was password protected with a hex editor. The
document complains and is not fully functional until I take further steps,
but it is functional enough to let me extract what I need.
Can the system tables be edited /erased / overwritten from a good DB? Can I
simply chop off the tail end, where all the temporary junk is? Would there
be checksum problems? Would Windows or Access complain, but generate a new
checksum anyway? Anybody have any experience with this?
The 2GB limit is usually not much of a problem for me, but it's annoying
that there is no warning when it goes over. Word processors as far back as
thirty years ago would warn you if your document had reached the size
limit - it seems pretty Mickey Mouse that an otherwise sophisticated product
like Access does not, but just lets you crash.
Petr
project, where I'm importing a bunch of pretty garbaged manual entries and
trying to integrate them into a functional database. There are literally
hundreds of queries that fiddle with the data as it's read in, some that
clear or drop tables to prepare for the next attempt and VBA code that
executes the queries. They are named and numbered in a systematic fashion,
and I wrote a routine that executes queries by groups.
As anyone who has done this sort of project knows, this repeated reading in,
clearing, reading in again, clearing again, over and over, causes a serious
amount of DB bloat. I normally close with a C&R every so often, to reduce
the size back to normal, but yesterday, during a full day's worth of
thrashing this thing, I neglected to do so and around 11pm, it ran over max
to almost 2.1 GB and locked up. Naturally, it's also been several days since
I made a backup, which I normally do pretty religiously.
The tables and queries I managed to drag and drop to a new, empty DB, but
most of the forms and almost all of the code is inaccessible. The VBA editor
won't even open and all attempts to do a C&R cause an error, where Access
advises me that it has detected corruption, that I should make a backup copy
and do a compact and repair.
I've tried all the usual stuff:
Compact and repair manually - error message.
Set the 'Compact on close' option - error message instead of options dialog.
Decompile - error message.
Import from another DB - error message.
Drag and drop into another DB - error message.
Does anyone know any tricks for getting stuff out of a mess like this? I've
been looking at it with a hex editor, there seems to be a lot of ballast
that I could cut away. Maybe if I got it back under 2GB it would recover
enough to let me extract at least something. I've managed to hack Word
documents where the VBA code was password protected with a hex editor. The
document complains and is not fully functional until I take further steps,
but it is functional enough to let me extract what I need.
Can the system tables be edited /erased / overwritten from a good DB? Can I
simply chop off the tail end, where all the temporary junk is? Would there
be checksum problems? Would Windows or Access complain, but generate a new
checksum anyway? Anybody have any experience with this?
The 2GB limit is usually not much of a problem for me, but it's annoying
that there is no warning when it goes over. Word processors as far back as
thirty years ago would warn you if your document had reached the size
limit - it seems pretty Mickey Mouse that an otherwise sophisticated product
like Access does not, but just lets you crash.
Petr