Run-Time Error '438' Problem

D

Don

We have an application that after some form, report, and VBA code
modifications now fails to work on one machine. The main switchboard form
comes up, but when you select an option from it, the following VBA error is
raised:

Run-Time Error '438':
Object doesn't support this property or method

When "Debug" is selected, a VBA window opens with code from a sub-form of
the form that is supposed to have opened. The line of code, for what it is
worth, is:

cbCancelSupervisorChanges.Enabled = False

Given that the code works on three other machines, it would seem that the
object really does support the property or method.

Two observations:
1) The form being opened (the one that causes the run-time error) has an
Open event. The switchboard form and splash screen do not. That is to say,
this is the first form where VBA code is encountered and run.

2) In the VBA IDE, the Tools->Compile button is always greyed out on the
offending machine.


This all leads me to believe there is some sort of VBA problem. I did a
search on the error number, and it sighted component mis-match as a possible
cause as well as some system DLL issues (vague references to
MSNConnectionVProxy.dll and pksocx.dll). As I have seen something similar
to this before and the problem there was a mis-match of versions in the VBA
References (in a VBA window Tools->References), I reviewed that. The
offending machine had the following:

Visual Basic for Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibility 5.3

Whereas the 3 other machine that work have:

Visual Basic for Applications
Microsoft Access 9.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibility 5.3

The difference being the version of the Microsoft Access Object Library
(10.0 vs. 9.0).

The offending machine is running Win2000 with OfficeXP. One of the "good"
machines is XP with Office XP. The other machines are Win2000/Office 2000
(for sure!).

Any ideas on how to whack this bug will be greatly appreciated!!!


Thanks!!

Don
 
T

TC

Didn't you ask this a few days ago elsewhere?

Personally, here's how I'd approach this.

(1) Check that the line of code in question is >actually executed< on the
other PCs. (The fact that you get no error from it, does not prove that it
is executing with no error. It might not be executing at all, due to the
application taking different branches through the code, on different PCs.)

(2) Check that cbCancelSupervisorChanges is an object that does have an
Enabled event. Going from the name, it's probably a combo box, which does
have that event. Note that most programmers would probably "qualify" the
object name, like this:

me![cbCancelSupervisorChanges].

(3) Take a copy of the db & remove all ON ERROR statements. It may be that
the "real" error is occuring on some other line, but is being hidden due to
improper use of those statements.

Personally, the error as described, does not make sense to me. So I think
you may be missing something important "behind the scenes". Hence suggestion
(3).

HTH,
TC
 
D

Don

TC

Yes, I did ask this a few days ago. You asked for more details. In the
mean time I did a little more research and due to the lack of responses to
the original post decided to repost it with the additional details.

Regarding your comments:
1) Good point regarding setting breakpoints. However, this application ran
fine on the subject machine prior to the modifications. In fact where the
error occurs has not been modified in many months. It also had run on
another Win2000/Off2000 box.

2) I will try the "qualification". However, in all the code I have looked
at I have not seen this done very much.

3) Doubtful.


Most references to "Run-Time Error '438'" point to DLL and component
reference problems, not actual problems with the DB. Interestingly, of
these references, the majority deal with Internet Explorer issues and this
machine supposedly has some network connectivity problems. I am trying to
verify this.

Thanks for the comments.

Don






TC said:
Didn't you ask this a few days ago elsewhere?

Personally, here's how I'd approach this.

(1) Check that the line of code in question is >actually executed< on the
other PCs. (The fact that you get no error from it, does not prove that it
is executing with no error. It might not be executing at all, due to the
application taking different branches through the code, on different PCs.)

(2) Check that cbCancelSupervisorChanges is an object that does have an
Enabled event. Going from the name, it's probably a combo box, which does
have that event. Note that most programmers would probably "qualify" the
object name, like this:

me![cbCancelSupervisorChanges].

(3) Take a copy of the db & remove all ON ERROR statements. It may be that
the "real" error is occuring on some other line, but is being hidden due to
improper use of those statements.

Personally, the error as described, does not make sense to me. So I think
you may be missing something important "behind the scenes". Hence suggestion
(3).

HTH,
TC


Don said:
We have an application that after some form, report, and VBA code
modifications now fails to work on one machine. The main switchboard form
comes up, but when you select an option from it, the following VBA error is
raised:

Run-Time Error '438':
Object doesn't support this property or method

When "Debug" is selected, a VBA window opens with code from a sub-form of
the form that is supposed to have opened. The line of code, for what it is
worth, is:

cbCancelSupervisorChanges.Enabled = False

Given that the code works on three other machines, it would seem that the
object really does support the property or method.

Two observations:
1) The form being opened (the one that causes the run-time error) has an
Open event. The switchboard form and splash screen do not. That is to say,
this is the first form where VBA code is encountered and run.

2) In the VBA IDE, the Tools->Compile button is always greyed out on the
offending machine.


This all leads me to believe there is some sort of VBA problem. I did a
search on the error number, and it sighted component mis-match as a possible
cause as well as some system DLL issues (vague references to
MSNConnectionVProxy.dll and pksocx.dll). As I have seen something similar
to this before and the problem there was a mis-match of versions in the VBA
References (in a VBA window Tools->References), I reviewed that. The
offending machine had the following:

Visual Basic for Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibility 5.3

Whereas the 3 other machine that work have:

Visual Basic for Applications
Microsoft Access 9.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibility 5.3

The difference being the version of the Microsoft Access Object Library
(10.0 vs. 9.0).

The offending machine is running Win2000 with OfficeXP. One of the "good"
machines is XP with Office XP. The other machines are Win2000/Office 2000
(for sure!).

Any ideas on how to whack this bug will be greatly appreciated!!!


Thanks!!

Don
 

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