Conflict between two Access Databases

mjdemaris

Working on it...
Local time
Today, 05:54
Joined
Jul 9, 2015
Messages
426
Hello everyone,
I have a user that has a problem opening an Access database after another one is already open.

The second program does not even seem to load, all I see is the hour glass symbol, and nothing appears in the Task Mgr.

They are separate programs, separate backends. Both make calls to get the environment user name, machine name and IP address, both make use of maximizing certain forms.

I cannot replicate the problem on my computer.

Thoughts on how to troubleshoot/solve this?

Thanks.
 
It sounds like a system resource issue

Are one or more databases on a network for that user?
Check the CPU / memory / network load in task manager

If none of those seem to be an issue, it may be worth repairing or reinstalling Office
 
Oh, yes, these are network shared backends. The other odd thing (that i forgot to mention) is that he can open program A then B without problems. But, if he opens B then tries A, we have the problem.
I checked that task manager, all seemed ok.
One other tid-bit that may or may not have anything to do: we run windows 10 and his screen is magnified a little, like 125 or 150%. (This drives me crazy trying to size forms for everyone's pc!!)
 
Presumably B is more resource intensive than A.

Any special references being used?
Try increasing MaxLocksPerFile setting in registry.

Not sure that using screen magnifier would have any effect but it would be easy to test by switching it off temporarily.

However related to fitting forms to screens, have you tried using automatic form resizer code?
 
I haven't found any free form resizer code. If I remember correctly, the code i found was a little pricey, but it's been quite a while since i looked at it.
I will check your other recommendations out.
References checked: Prog B
VBA
MS Access 16.0 Obj Lib
OLE Automation
MS Off. 16.0 Access DB engine obj Lib
ActiveX Data Obj 6.1 Lib
ActiveX Data Obj Recordset 6.0 Lib
MS Outlook 16.0 Obj Lib
MS Off 16.0 Obj Lib

Prog A:
References
VBA
MS Access 16.0 Obj Lib
OLE Automation
MS Off 16.0 Access DB engine Obj Lib
MS ActiveX Data Obj 2.8 Lib

The last one is a different version...for some reason.
 
OK, let's see if I've got this...

User can open database A and then can open database B in that order. BUT if the user opens B first, he then cannot open A.

Things I would check include whether in both cases, you have one or two instances of MSACCESS.EXE (it's correct name in this specific context). If you have two in one case and only one in the other, that is significant. However, since MSACCESS.EXE is supposed to be "pure" code, you should NOT need a second copy of the image file. So if the answer is "one copy" for BOTH cases, that is actually good.

Then, my usual issue is that when something won't open, can you "fix" it by closing the "B" instance, and in that case, does the "A" database open immediately?

I also am a fan of the debugging info sometimes found in the event logs. You need to find the Control Panel >> Administrative Tools >> Event Viewer - but on Win10, it depends on which theme you have chosen as to whether that path is available.

So anyway, trigger the failing sequence and note the exact time of the attempt that doesn't work. HINT: Either have a "clock gadget" on your desktop or look at the clock in the far right of the task bar. Since both of those clocks reflect the system time, you should be able to use the event viewer to see what happens at the times in question. If there is an error in the log, you have found valuable info. Usually, you only need to go at most one minute either way from the critical event to see what is happening. The down side of this is that you might not see anything. It COULD happen.

That would mean you have to run the Resource Manager in the background, run everything "normalized" (i.e. neither maximized nor minimized) in windows so you can also see the resources window. Then launch database B, let the resources settle, and launch database A. You might be able to see some resource dip towards zero.

Unless database B is "playing" with the registry or has opened something in exclusive mode that is shared by database A, I'm darned if I know what it could be... but that idea gives me one more experiment.

Open A, then B. OK, they are now both open. Can you switch active windows back to A and actually DO anything? If no, then the problem is that B is being opened in exclusive mode and has locked whatever it shares in common with A. Is there a chance that A and B share all or part of the same back-end?
 
As well as working your way through Doc's tests, I suggest you update the MS ActiveX Data Obj 2.8 Lib to ActiveX Data Obj 6.1 Lib so both are using the latest library

I use open source form resizing code by Jamie Czernak in most of my databases. The code is well over 10 years old & generally works extremely well
There are several examples with this code in sample databases including:
https://www.access-programmers.co.uk/forums/showpost.php?p=1556447&postcount=2
https://www.access-programmers.co.uk/forums/showpost.php?p=1553962&postcount=2
https://www.access-programmers.co.uk/forums/showpost.php?p=1545445&postcount=3

To use it, copy the module modResizeForm to your own database.
Design forms based on the lowest resolution that any of your users have.
Then add this line to the Form_Load event of each form:
Code:
ResizeForm Me

For example, I design form based on a resolution of 800*600 and set the default font size = 7pt
When in Form_view on a 'normal resolution' such as 1680*1050 this will expand to 11pt
 

Users who are viewing this thread

Back
Top Bottom