Access 2003 closes when I run function

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi all

I have written a function called FormIsOpen to test whether a form is
currently open and put it in a module. The function code is as follows:

Function FormIsOpen(FormName As String) As Boolean

Dim AnyForm As Form
For Each AnyForm In Forms
If (AnyForm.Name = FormName) Then
FormIsOpen = True
Exit For
End If
Next AnyForm

End Function

The database is in 2000 format. I have moved it to a machine running Access
2003 (but not updated it 2003). Now, whenever the function is called, I am
told Access has to close and apologised to for the inconvenience.

If I replace the function call with lines of code to perform the same
operation, it works fine.

Can anyone tell me what is going on here?

Many thanks

David Cleave
 
Sounds like a corruption, and a decompile will probably fix it.
Try this sequence:

1. Uncheck the boxes under:
Tools | Options | General | Name AutoCorrect
Explanation of why:
http://allenbrowne.com/bug-03.html

2. Compact the database to get rid of this junk:
Tools | Database Utilities | Compact

3. 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"

4. Open Access, and compact again.

5. 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

6. Still in the code window, choose Compile from the Debug menu.
Fix any errors, and repeat until it compiles okay.

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, and reference ambiguities are
resolved.

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
 
Back
Top