I have never used variables with $ in their name. Could change all the error handling MsgBox calls to something like:
MsgBox "Error encountered in form Main Menu procedure ETB_Click - " & Err & " : " & Err.Description
Review http://allenbrowne.com/ser-23a.html
How to attach file: http://www.accessforums.net/showthread.php?t=70301 To provide db: copy, remove confidential data, run compact & repair, zip w/Windows Compression.
From the code window go to Tools>References... and see if you have any marked as MISSING. They could be bogus. Remember the reference and uncheck it and see if the project will compile.
Thanks I'll try. What is strange is that it has been work with no issue for years and still works on all of the old machines.
the $ is the old way of saying it is a string. I see you are 2016. VBA has maintained backwards compatibility for many years, but may well have now been deprecated in 2016. MS do seem to being doing a big tidy up and removing support for very old systems. You now have err.number and err.description
see this link https://bytes.com/topic/access/answe...oes-error-mean
Error$ dates back to Access 2.0
My guess would be that the new machines don't have the old reference file(s) (i.e. the .dll, .olb or .tlb) and the later versions of the necessary files (such as whichever contains the vba error handler) aren't backwards compatible.
A Find/Replace could take care of the outdated code, but I'd do this on a backup of the db, just in case.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.
Seem to recall it actually goes back to the original Basic language circa 1970's
The uncheck the DAO reference and Utility.mda seemed to have worked for now. Thanks