Microsoft Access has encountered a problem and need to close...

G

Guest

Hello,
I ahve one form that has a command button on it.
On its click event, the following code will run:
----------
Private Sub Submit_Click()
Dim tabella As String
Select Case instruments
Case Is = 1
tabella = "tblobs"
Case Is = 2
tabella = "tblmoods"
Case Is = 3
tabella = "tblabs"
Case Is = 4
tabella = "tblpas"
Case Is = 5
tabella = "tblshy"
End Select
Dim riporta As String
riporta = Combo37.Value & Combo37.Column(4) & strumento

DoCmd.RunSQL ("INSERT INTO " & tabella & " (strpazID,COMPLETO) VALUES('" &
Text44.Value & "',0)")
DoCmd.RunSQL ("UPDATE " & tabella & " INNER JOIN TBLPAZIENTI ON
TBLPAZIENTI.strID=" & tabella & ".strpazID SET " & tabella &
".STRNOME=TBLPAZIENTI.STRNOME WHERE strpazID='" & Text44.Value & "'")
DoCmd.RunSQL ("UPDATE " & tabella & " INNER JOIN TBLPAZIENTI ON
TBLPAZIENTI.strID=" & tabella & ".strpazID SET " & tabella &
".STRCOGNOME=TBLPAZIENTI.STRCOGNOME WHERE strpazID='" & Text44.Value & "'")
DoCmd.OpenForm "frmQuestionario", acNormal, , , , acWindowNormal, riporta
DoCmd.Close acForm, Me.Name, acSaveNo

End Sub
----------

The last line of this code should close this form (which is modal, btw),
while the line immediatly before will open a new form.
Anytime I click the button, Access will close dramatically, asking if I wnat
my db repaored and re-opened.
Why this would happen?
I have checked the code and it works fine. I have tried to set modal=No and
the error will raise anyway.

Why?
 
A

Allen Browne

Rocco, this sounds like a corruption.

A decompile is probably your best shot, but these steps in this order:

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
 
G

Guest

thanks,
it has worked perfectly.

Allen Browne said:
Rocco, this sounds like a corruption.

A decompile is probably your best shot, but these steps in this order:

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
 

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