Invalid Argument - Data disappeared

O

okschlaps

I have a large split mdb. Today I got an "invalid argument" error trying to
open a form. I traced the problem to a particular query. Now the weird part.
I ran the select query and it initially displayed the data. But then the
invalid arguement message box appeared. When I clicked okay on it, the data
disappeared (leaving the ?### only). I compacted and repaired my back ends
and it seems to be running okay now. Do you think it was just a corrupted
table? It seems odd that I would have the data, but then they would disappear.
Thanks for your any leads you can give me.
 
T

Tom Wickerath

If you suspect any corruption at all, now would be a good time to try
creating new databases from each of your source database files. Here is my
standard blurb for doing this:


Create a brand new database and immediately disable the NameAutocorrupt
feature (see: http://allenbrowne.com/bug-03.html for reasons why you want to
do this). Then import all objects from the suspect database into the new
database, one group at a time. In other words, import all tables (but not
linked tables), then import all queries, then all forms, etc. While Access
will allow you to import all objects in one operation, the experts at FMS,
Inc. (a Microsoft Partner), have stated that it is best to import objects one
group at a time (Reference:
http://www.fmsinc.com/ubb/Forum12/HTML/000285.html).

Recreate any linked tables from scratch. Access can cache a lot of
information about linked tables, which may no longer be valid, so it's always
best to recreate the linked tables from scratch. When importing local tables,
make sure to check the option to import relationships, menus and toolbars,
and import/export specs. If any of the local tables in the source DB are
hidden, you'll need to first unhide them. You will need to set the checked
references to match the source database, along with any startup options set
under Tools > Startup. Going through this process often times solves
corruption problems, because you get a new set of the hidden system tables
(the tables whose names start with "MSYS"). These system tables are updated
appropriately as you import objects.

This may sound like a lot of work, but it really isn't. Creating a new
container DB, disabling NameAutocorrect, importing all objects one group at a
time, re-establishing any linked tables, setting startup options, and setting
references to match the source DB is usually a fairly quick procedure. When
you are in the Visual Basic Editor, in order to check that the references
match the source DB, you should do a Debug > Compile ProjectName as well.



Tom Wickerath
Microsoft Access MVP

http://www.access.qbuilt.com/html/expert_contributors.html
http://www.access.qbuilt.com/html/search.html
__________________________________________
 
V

Van T. Dinh

It does sound like data corruption.

It is possible that at the corruption is in a record / row and at the start,
the Front-End still can access the data until it hits the corrupted record /
row.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top