[AccessD] Access97 on W2000 crashes

Andy Lacey andy at minstersystems.co.uk
Tue Jan 10 07:52:32 CST 2006


I've listed below the results of running ListRefs on the two machines. At
first I thought they were identical, but there is one difference in the path
to the Outlok library. Under W98 this is

C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\msoutl9.olb

whereas W2K has the old-fashioned DOS'y path of

C:\PROGRA~1\MICROS~1\Office\msoutl9.olb

Surely this is not significant. It can't be, can it?

The other thing I thought odd was that the DAO 3.5 reference returns a
.Major and .Minor of 4.0 not 3.5, but then again it's the same on both
machines.


Windows 98
==========
VBA.3.0 0 True False
C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA332.DLL
{000204EF-0000-0000-C000-000000000046}
False
Access.8.0 0 True False
C:\Program Files\Microsoft Office\Office\MSACC8.OLB
{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}
False
DAO.4.0 0 False False
C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\DAO\DAO350.DLL
{00025E01-0000-0000-C000-000000000046}
False
Outlook.9.0 0 False False
C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\msoutl9.olb
{00062FFF-0000-0000-C000-000000000046}
False
Word.8.0 0 False False
C:\Program Files\Microsoft Office\Office\MSWORD8.OLB
{00020905-0000-0000-C000-000000000046}
False


Windows 2000
============
VBA.3.0 0 True False
C:\Program Files\Common Files\Microsoft Shared\VBA\VBA332.DLL
{000204EF-0000-0000-C000-000000000046}
False
Access.8.0 0 True False
C:\Program Files\Microsoft Office\Office\msacc8.olb
{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}
False
DAO.4.0 0 False False
C:\Program Files\Common Files\Microsoft Shared\DAO\dao350.dll
{00025E01-0000-0000-C000-000000000046}
False
Outlook.9.0 0 False False
C:\PROGRA~1\MICROS~1\Office\msoutl9.olb
{00062FFF-0000-0000-C000-000000000046}
False
Word.8.0 0 False False
C:\Program Files\Microsoft Office\Office\MSWORD8.OLB
{00020905-0000-0000-C000-000000000046}
False


Does any of this give any clues Shamil?


--
Andy Lacey
http://www.minstersystems.co.uk




--------- Original Message --------
From: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Subject: Re: [AccessD] Access97 on W2000 crashes
Date: 10/01/06 12:51


Amdy,

You probably have ".DLL hell" kind of problem.

If decompile and then Syscmd(504, 16483) works on target PCs then decompile
and make MDE on target PC should also work.

Compiled and saved MDB on your development PC crashes on the users PC
because they have some .DLLs with broken compatibility - in this case
internally the function call is done based on the binary call context
existing on your PC against incompatible binary call context existing on the
target users PC - CRASH....

I still think that logging is the only solution here to find and fix the
problematic code line(s) - usually this is something like default property
name skipped and the default property name can't be skipped or is different
in the new DLLs installed on the target PCs....

If you will not find and fix problematic code line(s) then you'll leave the
"time bomb" inside your app...

Try to run this function on your development PC and on target users PC to
get the list of references:

Public Function ListRefs()
Dim eref As Reference
For Each eref In References
With eref
Debug.Print _
.Name & "." & .Major & "." & .Minor; _
" " & .Kind & " " & .BuiltIn; _
" " & .IsBroken
Debug.Print vbTab & .FullPath
Debug.Print vbTab & .Guid
Debug.Print vbTab & .IsBroken
End With
Next eref
End Function

You will probably get the same results - the problematic DLL could be the
one of the referenced/used by the DLLs, which are directly referenced from
your program MDB...

Shamil

----- Original Message -----
From: "Andy Lacey" <andy at minstersystems.co.uk>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Tuesday, January 10, 2006 3:15 PM
Subject: Re: [AccessD] Access97 on W2000 crashes


> Well it's not an issue anyway because the MDE route didn't work. I've
found
> something that does, however, but boy is it weird. I'd really appreciate
> some help understanding this.
>
> The following works every time. On the W2K machine I decompile the app. I
> then run the app but compile at the start of it with a Syscmd(504, 16483).
> It runs perfectly.
>
> However as soon as I exit the app and try to run it again it crashes
again.
> If I test for IsCompiled and only run the Syscmd if not compiled then the
> app skips the syscmd but then crashes in the original area. If I omit the
> IsCompiled and just try to run the Syscmd regardless then it crashes on
> that.
>
> If I manually compile and save the app then run it from an icon it fails.
If
> I make an MDE of it, it fails. The *only* way I can get it to run
> consistently is as I describe above; decompile, exit, compile on the way
in.
>
> What on earth is going on here????? Does anyone have the faintest idea? At
> the moment (unless someone knows a way of decompiling with code) the only
> solution I can see is to make the icon copy a decompiled version of the
MDB
> over the 'live' one, then run with that compilation at the start. But as a
> regular method of running it sucks. Any help VERY gratefully received.
> --
> Andy Lacey
> http://www.minstersystems.co.uk
>
>
>
>


________________________________________________
Message sent using UebiMiau 2.7.2




More information about the AccessD mailing list