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