Link to home
Start Free TrialLog in
Avatar of Rosa2003
Rosa2003

asked on

Access 2003 Error 3197 and there is no solution !

Hello,

I have a database .mdb which has got corrupted (Error 3197). I can't open it. I have tried and searched any solution, but apparently there is no one.
Can somebody help me, please?

By the way, I found this solution in EE and even tried AccessRecovery 2.1, but no success.

MS Access database recovery steps:

1) Create a backup of the corrupt database. (Just in case of)

2) Create a new database and use File/Get external data/Import to get all objects of the damaged database.

3) Try these Microsoft solutions:
Repair A97/A2000:
http://support.microsoft.com/support/kb/articles/Q109/9/53.asp
Jetcomp:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q273956
and/or read the article:
ACC2000: How to Troubleshoot Corruption in a Microsoft Access Database
http://support.microsoft.com/default.aspx?scid=kb;en-us;306204

4) Bit "heavier":
Access decompile:
http://www.granite.ab.ca/access/decompile.htm

5) Try a recovery tool:
Access recovery:
http://www.officerecovery.com/access/index.htm

Didn't work.
ASKER CERTIFIED SOLUTION
Avatar of MitchellVII
MitchellVII
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of dkalel
Hi MitchellVII,

If you just need the data from the tables you can try this:

Open Excel, Select from the "Data" menu:  "Import External Data..." "Import Data"
Select the Database and tables you need.  You would then have to open a blank Database, and import from the excel spreadsheet(s).

I found this a while back, can't remember where, and used it as a last ditch effort.  Not sure why, but it worked.  You would still have to recreate the reports, forms, etc., but the raw data may be recoverable this way.
Oops, disregard, just noticed that solution in one of your links, so I assume you've already tried it.
- make backup copy of your database.
- Start a blank database,
- Import all there is from bad.mdb to this blank database.
  Note:  The process may stop while importing certain form or report.  
            Take note of this object.  Try it again but this time avoid importing that particual object.

- Import the bad object from a recent copy,
  (at this point, it may allow you to import the bad object you were avoiding.
   try importing it.  If you were able to import it, it will be called say frmCustomer1
   because frmCustomer existed befor hand.  Rename frmCustomer as frmCustomer2
   and also rename frmCustomer1 bad one as frmCustomer).
- Regardless the outcome of last step, try to compact and repair it.
- Delete frmCustomer3 later after taking care of the problem.

mike
i have found that one of the chief causes of database corruption has to do with your VB Code goin funky on you.  One of the chief causes of that is changing code in your VB Editor while the form is in runtime.  Better to go ahead open it in design and then edit the code.

Don't ask me why Access would 'allow' you to do something so deadly, but it does and it causes many many blown db's.  - Oh thats right, Access was written by M$ - now I understand why they would leave something THAT stupid in the program - that's what M$ does!  lol - sad but true.

I decompile my db every day (atleast once) and have found this keeps it humming along nicely.  decompile is your friend.  gets all of your code 'ghosts' out of the machine (i.e., nasty little left behind code giblets that fester like termites eacting your db from the inside out...)

M
Mitch is correct regarding writing code while a form is in use - just don't do it!!

However, decompile used incorrectly can cause as many problems as it solves ... you really should only use this when needed. See this essay by M. Kaplan (one of the design team members for one of the Access versions) for information:

http://www.trigeminal.com/usenet/usenet004.asp?1033

Here's a discussion by Frank Miller of MS regarding corruption:
http://www.vb123.com/toolshed/02_access/uncorruptdb.htm
hmm, LSM didnt know decompile was dangerous - ack, seems like damned if you do and damned if you don't.

M

P.S., I need to have word (or two or three with M. Kaplan), lol, his product needs a bit o' work, eh?

lol
RISKS TO DECOMPILE: WHY YOU SHOULD NOT USE IT CONSTANTLY

If you think about the mechanism, you are relying on the canonical text always being completely valid, and you are relying on the ability to globally invalidate a compiled state. If there is ever a problem in either area, /decompile will take a project that was working fine and turn it into cottage cheese. And while such bugs should not happen.... it is impossible to make a /decompile bug happen without using /decompile. They simply did not extensively test a command line switch that was never meant to be used.... nor should they have to, really.

SO, PLEASE REMEMBER that this is a very powerful technique that was added for reasons having nothing to do with any of the reasons that you may want to use it now. It may help you save an otherwise hopelessly corrupted project. But use it sparingly as you may end up in a worse situation than you started by just globally using the switch on projects that do not need it.

IF IT AIN'T BROKE, DON'T FIX IT.

Hmm, ok, but it never caused me no trouble...

M
It's never caused me any troubles either, but the only time I decompile is when I need to. FWIW, I know plenty of developers who use it much more frequently than I with no reported ill effects. If you DO use it regularly, do yourself a favor and make a backup of the file first.
Avatar of squirrl
squirrl

LSM,

Yeah I backup my db pretty much every time i breathe on it.  the code i write is so brilliant it would be a dirty shame to ever lose it, lol.

M
When I write new code, I back up the DB, decompile, repair & compact, compile, convert to mde then distribute.  I do this sometimes 3-4 times a day.  Never had a single proplem with the procedure.  Decompiling/compacting/recompiling reduces the size of the DB by 30-50% and increases speed noticably.  The most important point is ALWAYS BACK UP.  I keep each generation of backup for the past two weeks in case I find a problem that has gone back a few generations.
Good system, and glad it works for you ... personally, I always backup/export as text/build new db/import from text/build mde/distribute ... most of my work has been in VB over the past year+ ... as far as versioning, I keep every one, use a Subversion setup to do so ... saved my bacon more times than once!!
I keep CD's of my database in my car in case my house burns down, in my gym locker in case I wreck my car, in a safety deposit box in case I forget to pay the dues at my gym and on my web server in case there is a big earthquake and my entire state falls into the abyss...

:)

M
here are some links to access database recovery houses, won't be cheap but that really depends on the value of your data, the l;ast time it was backed up etc.

http://www.pksolutions.com/services.htm 
http://www.access-emergency.com/

Steve
Mitch, you really should consider shipping a CD into space on a monthly basis, in case a huge EMP wipes out all data here on Earth ... jeesh, don't you even care about your data????
LSM,

Actually, just this morning, I transmitted my database through a quantum wormhole to a parallel universe recently created by bumping of membranes on the 10th dimension of spacetime.

My phone bill is gonna be a b****

:)

M


oops, I meant 11th dimension, only strings on the 10th - what WAS I thinking!

thats what i get for posting before my 2nd cup of coffee...

M
... a fan of the "Elegant Universe" I have the book and the DVD :-)
You know, its funny but physicists and mathematicians actually argued for years over whether there were 10 or 11 dimensions...

This was back when they thought the basic 'stuff' of the universe was made of oscillating 'strings'.  Then they figured out over lunch one day on the back of a napkin that the universe really isnt based upon strings at all but 'waves'.  Doh! - so OBVIOUS!.  Every time these vibrating waves touch, they spawn a new 'universe' replete with its own laws of physics.  Although time travel to our own past or future isn't possible due to the paradoxes involved, travel to another point in the timeline to another universe very similar to our own is possible on the quantum level (aka, sliders, sort of, no joke...).  Unfortunately, wormholes like this are subatomic in size and we'd never fit, however, it is conceivable one could 'view' events on the other side if one could figure out how to pass an electronic 'receiver' through the itsy bitsy wormhole.

Well EVERYONE knows that for waves rather than strings you need 11 dimensions, not 10.  So it turns out the 11 dimension guys won the big game and they all got lai* by the hot former 10th-dimension groupies.  Meanwhile, the 10 dimension guys took their 5 competing theories of 'everything' and slunk off into the gloomy night, never to be heard from again.

These guys put the 'N' in Nerd for sure.  This stuff actually makes perfect sense to them.  At least now they can end the pathetic waste of life caused by all of the dueling...

"11 Dimensions!?  You fool, HA-HA!  Pistols at dawn scum!"

M