Re: Error on any code in Subform
- From: "Allen Browne" <AllenBrowne@xxxxxxxxxxxxxx>
- Date: Fri, 8 Feb 2008 14:13:54 +0900
Could be any of several things that has gone wrong, so here's a sequence that will address many possible problems and should get you going again.
Try this sequence (in order):
1. Get rid of any code in the subform's module. Steps:
Open the subform in design view.
Copy any important code you have from it's module out, and save as a text file (e.g. in Notepad.)
Set the form's Has Module property to No, and confirm that you really do want to get rid of everything in its module.
Save the form.
2. Turn off Name AutoCorrect. Steps:
Uncheck the boxes under:
Tools | Options | General | Name AutoCorrect
In Access 2007, it's:
Office Button | Access Options | Current Database | Name AutoCorrect
Explanation of why:
http://allenbrowne.com/bug-03.html
3. Compact the database:
Tools | Database Utilities | Compact/Repair
or in Access 2007:
Office Button | Manage | Compact/Repair
4. Close Access. Make a backup copy of the file. Decompile the database by entering something like this at the command prompt while Access is not running. It is all one line, and include the quotes:
"c:\Program Files\Microsoft office\office\msaccess.exe" /decompile
"c:\MyPath\MyDatabase.mdb"
5. Open Access (holding down the Shift key if you have any startup code), and compact again.
6. Open a code window.
Choose References from the Tools menu.
Uncheck any references you do not need.
For a list of the ones you typically need in your version of Access, see:
http://allenbrowne.com/ser-38.html
7. Still in the code window, choose Compile from the Debug menu.
Fix any errors, and repeat until it compiles okay.
8. Still in the code window, choose Options on the Tools menu. On the General tab, make sure Error Trapping is set to:
Break on Unhandled Errors
and the Compile on Demand is unchecked.
9. Open the form in design view, and paste the code (from step 1) back in. Compile again.
At this point, you should have a database where the name-autocorrect errors are gone, the indexes are repaired, inconsistencies between the text- and compiled-versions of the code are fixed, reference ambiguities are resolved, the code syntax is compilable, and the VBA options are set to show errors and avoid this kind of corruption.
If it is still a problem, the next step would be to get Access to rebuild the database for you. Follow the steps for the first symptom in this article:
Recovering from Corruption
at:
http://allenbrowne.com/ser-47.html
--
Allen Browne - Microsoft MVP. Perth, Western Australia
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.
"FayeR" <FayeR@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:3A40644B-0A78-4871-AB3B-83AA9089B99A@xxxxxxxxxxxxxxxx
I am receiving an error anytime I put any code in an event in a Subform.
Even code that doesn't really do anything such as:
dim teststring as string
teststring = "test"
I put the same code or more complicated code on a control in the Form and it
works fine.
I get the following error:
A PROBLEM OCCURRED WHILE MICROSOFT OFFICE ACCESS WAS COMMUNICATING WITH THE
ole SERVER OR ACTIVEX CONTROL.
There is a lot more text in the help associated with this message and I have
reviewed the explanation in the Knowledge Base and it doesn't seem
applicable.
Can anyone help with this issue? I am really stumped. Thanks!
Faye
.
- Prev by Date: Re: Filtering a Number of Comboboxes Before Their Forms are Opened(?)
- Next by Date: Re: Filtering a Number of Comboboxes Before Their Forms are Opened(?)
- Previous by thread: Re: docmd.sendobject
- Next by thread: Re: Pros and cons of using CurrentUser() as security feature?
- Index(es):