Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Access MDE gives error 40243

28 views
Skip to first unread message

Bob Howard

unread,
Apr 8, 2010, 11:37:22 AM4/8/10
to
I have a working Access 2003 MDB on my development (Win/XP) computer and all
works fine (so it appears).

My application is deployed as an MDE, so to perform my final testing, I
deploy it to various other computer environments. One change I tested
yesterday fails ... although the prior version of my application worked
fine!

It's being tested on a Windows 7 computer using Access 2010 (beta) ... but I
really don't think it much matters since the prior version of my application
still works fine in that environment.

Here's what happens:

I create the MDE and copy it to the Windows 7 computer. When I try to
execute the application, I receive an error 40243 ANY TIME my application's
"primary form" executes ANY function that's stored as a "module". There are
many common functions used by the application ... all are saved in modules
and called from various parts of the application.

To see if I could figure out what happened, I put a MsgBox in the primary
form just before the line of code that executes the common function. Right
after the line of code that executes the common function, I inserted another
MsgBox that displayed the Err.Number (I'm running On Error Resume Next at
this point in the code). In the common function being called, I placed a
third MsgBox ... as the first line of code. When I open the primary form,
the first MsgBox executes and I get the message displayed. Immediately
after that, I get the second MsgBox containing the error number (40243). I
never actually enter the common function ... because I never get the MsgBox
that it wantes to display.

I tried this same approach executing several common functions, and all
exhibit the same behavior and always return error 40243.

It appears I'm simply unable to execute any of my common functions! By the
way, I also have a couple of cases where I have a query that executes one of
the common functions ... they also fail (with some odd message I failed to
write down)!

When I revert to the last production version's MDE, it works fine.

I decompiled and recompiled ... and built a new MDE. It didn't help.
Nothing seemed to help. I did a compact and repair ... it didn't help
either.

So I'm presently in the process of re-applying all the source VBA changes,
starting with the prior (working) version. So far, all is working fine (I'm
about 75% done).

Anyone have any clue what's going on here?

bob


Bob Howard

unread,
Apr 8, 2010, 6:30:36 PM4/8/10
to
additional...

The message description is "Application-defined or object-defined error"

bob


"Bob Howard" <in...@churchtrax.com> wrote in message
news:eI$sRFz1K...@TK2MSFTNGP04.phx.gbl...

Douglas J. Steele

unread,
Apr 9, 2010, 9:26:42 AM4/9/10
to
Have you ensured that the folder where the MDE is located is a Trusted
Location?

Check the shaded area in the upper right hand of Allen Browne's
http://www.allenbrowne.com/Access2007.html if you're not sure.

--
Doug Steele, Microsoft Access MVP
http://www.AccessMVP.com/DJSteele
(no e-mails, please!)

"Bob Howard" <in...@churchtrax.com> wrote in message
news:eI$sRFz1K...@TK2MSFTNGP04.phx.gbl...

Bob Howard

unread,
Apr 12, 2010, 4:31:53 PM4/12/10
to

yes --- that's fine.

I think I have a lead on the problem, however. And it appears to be way out
there in left (possible right) field.

I have experienced a different sort of "issue" with the application ... and
this one is definitely related to "References". The MDB has a Reference set
to an external software package called BullZIP that is considered an
"optional" part of the application. I can tell internally whether the
computer on which the MDE runs contains BullZIP ... and if not, I don't
allow the user to click certain buttons that would cause it to call upon
BullZIP.

In my code, I need to have a BullZIP Reference set so I can compile the
following statement:

Dim BullZIPObject As New Bullzip.PDFPrinterSettings

I have 4 computers I use for the application ... one for
development/testing, and the other three for testing (all different
environments of Windows, Access versions, etc.).

When I create an MDE (on the development computer) and then try to run it on
a test computer that does not have BullZIP installed, many things go haywire
in the application. And I get all sorts of errors that point me to my
References. For example, I have some queries containing a Trim() function,
and they all throw an error! When I go back to the development computer and
comment out all the above Dim statement, and comment out any other
statements that depend on it, and remove the BullZIP Reference, and then
create the MDE, and then test that MDE on a computer without BullZIP ... the
queries work!

I should add that at no time did I actually execute any of the BullZIP code
in the program as it's code planned for the future. I simply had a
Reference and code that refers to it and have it compiled.

I'm thinking that the Reference to a non-existent external piece of
software, even though I don't execute that portion of the code, is throwing
off other aspects of the application that depend on their own References.

If I'm correct in this, then it seems that the solution if for me to code
something at startup time that detects whether BulZIP is installed or not
... and if not, internally removes the reference.

All this performed within the MDE.

Is this possible? Is this the way to go? Any help on how I could code
this?

Thanks....

bob

"Douglas J. Steele" <NOSPAM_djsteele@NOSPAM_gmail.com> wrote in message
news:%23ckUPh%231KH...@TK2MSFTNGP04.phx.gbl...

Bob Howard

unread,
Apr 12, 2010, 4:43:02 PM4/12/10
to
I just came across the concept of late binding. For converting this to late
binding, would I use the following?:

Dim BullZIPObject As Object
Set BullZIPObject = CreateObject("Bullzip.PDFPrinterSettings")

??

bob

"Bob Howard" <in...@churchtrax.com> wrote in message

news:ur7cH8n...@TK2MSFTNGP04.phx.gbl...

Bob Howard

unread,
Apr 12, 2010, 4:45:52 PM4/12/10
to
And obviously I would check for an error on the Set statement... bob

"Bob Howard" <in...@churchtrax.com> wrote in message

news:uBO$VCo2KH...@TK2MSFTNGP04.phx.gbl...

Douglas J. Steele

unread,
Apr 12, 2010, 5:34:20 PM4/12/10
to
Sorry: been out of town.

Yes, that should work.

--
Doug Steele, Microsoft Access MVP

http://I.Am/DougSteele
(no private e-mails, please)


"Bob Howard" <in...@churchtrax.com> wrote in message

news:uBO$VCo2KH...@TK2MSFTNGP04.phx.gbl...

Bob Howard

unread,
Apr 12, 2010, 5:49:57 PM4/12/10
to
Awesome (just checked out your home page BTW... I spend way too much time
with Access and "zero" with beer or wine (sorry). bob


"Douglas J. Steele" <NOSPAM_djsteele@NOSPAM_gmail.com> wrote in message

news:usvIofo2...@TK2MSFTNGP04.phx.gbl...

aharveyjr

unread,
Oct 24, 2012, 3:09:51 AM10/24/12
to
I too had the same problem. My Access program is broken up in modular fashion
too. It was originally written in Access 97 (been around for a long time),
then
converted to Access 2002. Because Microsoft no longer supports the Jet
database
engine, it became imperative that I convert the program to Access 2007. I did
that, finding it necessary to make "adjustments" here and there to
make it compatible with Access 2007/2010. The program worked perfectly on 3 of
the systems that I loaded it on, but then I too received the 40243 error with
one of the modules. I decompiled and recompiled, and still, I got the same
error. Finally, I created a blank 2007 database, and then imported everything
from the database that was giving me trouble, and THAT..., resolved the
problem.
Whatever was "corrupted" in the original database/module, the
importing of all of the components resolved the issue. I strongly suggest
trying that.
0 new messages