Problem with After Update (and other) events

J

Jancsi V

This seems to be an old problem. I have seen several questions but no real
good answer. What I have now is the following.

A form with a combo box to select records using the AfterUpdate propery. It
is smple, it works, in current access it is even created by a wizzard.

On one of the computers I use (computer A), this does not work anymore. I
get the error message: "A problem ocurred while Microsoft Access was
communicating with the OLE server or ActiveX Control."

I create the same sample problem on another computer, B, and it works. I
copy this .mdb to computer A - it works. On computer A I add a new form (same
as the other), again with a combo box: error message. The new form works as a
form, it can display the table data, etc. It seems that the event of the
combobox is not handled properly.

There is computer C, I copy the (good) sample file from B, no problem. There
too, a new form is added, with combo box, it works fine. I copy the file from
computer A (the one that did not work), it doesn't work here either. There
is also computer D: The "good file" created on B works, new form can be
added, no problem.

On computer A I changed the event from using VB code finding a record to a
very simple one: run a macro to give a sound. This worked. I changed the
macro to set a value of a textbox on the same form, this does not work
anymore.

Computer A: Win XP Pro En, Office 2003 Pro Hun
Computer B: WIn XP Pro En, Office 203 Pro Eng
Computer C: Win XP home, Office XP Pro Eng
Computer D: Win XP Pro Hun, Offce 2003 Pro Hun

I am almost sure computer A did not have this problem until about a week ago.

Can anyone suggest what I should do?
 
A

Allen Browne

There are several possible factors here.

First thing is to make sure the Name AutoCorrect boxes are unchecked under:
Tools | Options | General | Name AutoCorrect
Then compact the database:
Tools | Database Utilities | Compact/Repair

Next check your references are fine on each computer. Since you are running
different versions, see:
http://allenbrowne.com/ser-38.html

Next is the problem if the incompatible binaries between versions. The
compiled code is different in each version. The newer version can handle the
older binaries, but not the reverse. In a perfect world, the older versions
would just ignore the binary they cannot read from the later versions, and
compile with their own, and the newer versions would then be able to handle
that without problem. In practice, it doesn't work like that. You need to
explicitly decompile when you switch version, and especially when you switch
back.

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"
Then compact again.

Sometimes these issues are so stubborn that the only solution is to
decompile, and then create a new (blank) database and import everything.
 
J

Jancsi V

I tried most of what was suggested, nothing has changed. On the other hand, I
concentrated the problem into a small test case with only one little table,
and the simplest forms to show the problem. Is there a way to include the mdb
file in such a message? I could type here the event procedure, but this
wouldn't make sense, since the procedure is standard and the problem starts
before it would be called.
 
A

Allen Browne

If the problem persists even after the decompile, compact, and
create-new-database on the problem machine, and all other factors are in
order, and it works on all other machines, there could be a problem with
that machine. Reinstall.

However, the fact that it fails when you take it back to other machines,
suggests the decompile/compact/import sequence should address it, once all
other factors are handled.
 
J

Jancsi V

The problem is with the "problem machine". Inspite of the fact that it moves
to the other machines. Decompile etc. had no effect. (I hope I did it rght,
it seemd so. Hard to tell since I haven't done it before.)

I made a new test: new database, nothing in it except a form with a combo
with list typed in, i.e. no records, nothing. The combo shows the list, as it
should. Then I try to attach an AfterUpdate event: an error message sais:
Microsoft Office Access could not create the Visual Basic module.

I think the problem is connected with libraries and language versions (WIN
eng, Office hun). But I don't know how to test it. Besides, I am positive
that everything worked for several months and nothing has changed, except
occasional Windows updates. I am going to uninstall/reinstall office
completely..
 
J

Jancsi V

Solution found.
The problem occurred because Win XP was English and Office 2003 was
Hungarian. Hungarian has accented characters. I do not use accented
characters (except in strings) but the Hungarian Access has names for
objects, controls, etc. that contain accented characters. Fortunately, in the
meantime I found Microsoft knowledge base article 907337 that deals with the
problem. The proposed resolution, method 1: Verify the non-unicode language
helped.
Jancsi V.

--
Jancsi V


Jancsi V said:
The problem is with the "problem machine". Inspite of the fact that it moves
to the other machines. Decompile etc. had no effect. (I hope I did it rght,
it seemd so. Hard to tell since I haven't done it before.)

I made a new test: new database, nothing in it except a form with a combo
with list typed in, i.e. no records, nothing. The combo shows the list, as it
should. Then I try to attach an AfterUpdate event: an error message sais:
Microsoft Office Access could not create the Visual Basic module.

I think the problem is connected with libraries and language versions (WIN
eng, Office hun). But I don't know how to test it. Besides, I am positive
that everything worked for several months and nothing has changed, except
occasional Windows updates. I am going to uninstall/reinstall office
completely..
 

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