Many many times I have had this problem.
The standard advice is to rebuild the database by creating a new database and importing all the objects. This does sometimes fix it. But sometimes it doesn't - the import chugs along until it gets to the biggest, most complex and important form that would take days and days to recreate, and it won't import it. It looks and behaves like there's a problem in the deep magic of the form's module, but increasingly my experience of fixing it without touching the module (usually because it's not possible to get into the module!) makes me think this is not actually the case. I have also several times had the experience of getting this error, and then finding that it also appears in previous backup versions that worked OK before - but re-indexing the tables doesn't fix it, nor does rebooting.)
It's worth trying the following, which have regularly worked for me.
a) STRANGE BUT TRUE. If it's occurred after a long session editing and updating, it's often fixable simply by opening the database on another computer.(YES. REALLY). It then opens OK, and when one goes back to the first computer it, opens OK again there too. The instant fix occurs even if one is opening the same database file, across a network, but on different computers. And even if the first computer isn't even rebooted. Wierd, but it works about 50% of the time currently.
(Am currently editing several Access 2003 format databases that are also run in Access 2010 - in an organisation using both versions - not sure if this is significant. The wierdest thing of all is that once I get this error, it starts to occur also in previous, differently named, backups of the database that previously worked OK, if opened on the same computer - as if the same error has somehow backwardly infected the old copies. I can't explain it.).
b) TEDIOUS BUT TRUE. If it always happens when a particular form is opened, (or if a particular form also glitches when you try to re-import) try opening the query which underlies that form. If it also happens when you open the query (or if you get some odd message like "unable to link table A and table B", where the tables are perfectly fine and always linked OK before), just delete the query and either rebuild it or import from a previous version. Worth trying this even if the query appears to open OK outside the form.
c) If there are a lot of queries embedded in the form, (eg in dropdown lists) you may need to check all of these for corruption in the same way. This will work best if you ALWAYS save and name the queries, so you can check them / re-import them outside of the form itself. But if you can get into design view in the relevant form (sometimes you can't) you can usually just delete the existing SQL and start again on the dropdown.
d) Re-index the tables. Or just rebuild them using a "make table" query.
STOPPING IT FROM HAPPENING
Obviously - take regular backups. Though as above, I have several times had the weIrd experience of backups of previously working versions being "retrospectively" affected on the same computer when this occurs (usually fixable using (a) above.
With an Access 2003 format database which has EVER been opened and closed again by Access 2007 or Access 2010 (and I mean EVER) don't EVER EVER EVER be tempted to use the right-click "change control type" options (eg text-box to dropdown). In my experience, doing this will corrupt the form fatally about 99% of the time. It may also be true in ordinary 2007 and 2010 databases - I've only noticed it in this situation in office 2003 format databases though, and only if they have been opened (at least once) by the later versions. "Virgin" 2003 databases, being edited in office 2003, don't have this problem. I assume some horrid little corruption is introduced by the later versions, which just sits around in the deep magic until you try to do this type change.
Exactly as above, but it also applies if you copy a field and then rename it. If you must copy a field, it's imperative to close the form immediately, then re-open it, before renaming it. Otherwise death, as above.
I'm still working on all of this - it's happening repeatedly to me at the moment, in an organisation that runs every version of Access from 2003 and forward, so will repost if I find any other helpful moves.