Shamil Salakhetdinov
shamil at users.mns.ru
Tue Jan 10 06:56:52 CST 2006
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 > > > > > --------- 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 11:29 > > > Andy, > > If you: > > 1. Do not change references on runtime; > 2. Do not create forms/reports on runtime; > 3. Do not allow your users to change design of your forms/reports on design > time and to edit your code - > > then your app should work OK compiled into MDE. > > If you do change references on runtime then reconsider this part of your > app's coding and use RefLibPaths. > > If you do create forms/reports on runtime or allow users to change design of > your forms/reports then split your monolith app's mdb into constant and > changing parts. (This may involve quite some refactoring or go smoothly > depending of your coding but when done this will work for sure - in one of > the MS Access 97 apps I worked on we had one root program mdb and up to 40 > mde program components.... In your case these could be just two parts but in > general case any big application can/should be split into many parts working > together in ensemble...) > > 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 10:26 AM > Subject: Re: [AccessD] Access97 on W2000 crashes > > > > Interesting thought Shamil, thanks. I'll try today to see if that cures > it. > > However I have a horrible feeling that will open up other problems. I've > no > > experience with MDEs, never had the need, but have the lurking suspicion > > that there are things you can do with MDBs that you can't with MDEs - and > I > > probably do them. > > > > Andy > > > > > -----Original Message----- > > > From: accessd-bounces at databaseadvisors.com > > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > > > Shamil Salakhetdinov > > > Sent: 09 January 2006 22:43 > > > To: Access Developers discussion and problem solving > > > Subject: Re: [AccessD] Access97 on W2000 crashes > > > > > > > > > > Yes there's just one (v large) FE. No library MDBs or MDEs. > > > OK, if this MDB is compiled and saved then when you run it on > > > another PC with other versions of referenced DLLs then it > > > can/will get lost its compiled state - I have had such > > > problem a long ago with a large MS Access frontend - and it > > > did crash unexpectedly as in your case. The solution was to > > > compile it into .mde... > > > > > > Shamil > > > > <<< tail skipped>>> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > ________________________________________________ > Message sent using UebiMiau 2.7.2 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com