Microsoft fixes Access apps failing to open after July 2022 updates
Updated: Jul 29, 2022
If an IT professional tells you they do not have any Microsoft Access databases -- HA! Access is still in the top 10 database engines according to DB-Engines Ranking (July 2022).
Why is this important?
Over and over when we talk to the IT teams, they downplay the need to migrate Access databases to a modern solution. Why? Because most Access apps are developed by the business and not IT. However, this does not remove the IT departments responsibility for security, data management, regulation, and governance.
So, last week Microsoft rolled out a fix for a known issue that caused MS Access runtime applications not to open after installing July 2022's Patch Tuesday Office/Access security updates. This is not the first time Microsoft released an update that impacted Access; and will happen again because Access in no longer in the regression testing build processes having been feature frozen in 2013. The 2016 version further reduced the features removing all no longer supported Windows ActiveX controls (OCX) that were still in use in Windows 10. Windows 10 and higher no longer support those control types.
Microsoft Windows used "controls" to draw and handle data on the Windows screens both in its own apps and those available to developers. These were 32-bit developed for 32-bit versions of Windows. Microsoft phased out the support for these controls as it phased out 32-bit versions of Windows 10. Windows 10 is now unsupported. Windows 11 does NOT offer a 32-bit version. This warning from Microsoft is well documented over the past few years.
Windows controls were called "COM Objects" and was the way all Windows desktop apps were able to communicate data and commands to the operating system either directly on the local machine or over a local area network (LAN) to another Windows only machine. COM means "common object model" and Microsoft docs define it thusly: "COM is a platform-independent, distributed, object-oriented system for creating binary software components that can interact. COM is the foundation technology for Microsoft's OLE (compound documents) and ActiveX (Internet-enabled components) technologies."
COM technology is pre-Internet and restricted to only Microsoft Operating Systems (Windows desktop clients, and Windows Server systems including SQL.) Windows 7 (2009) desktop was offered in 32-bit as the default and 64-bit for optional installs. When Microsoft owned the whole compute ecosystem of an organization, desktop OS, Servers, and LAN it could create impressive interconnected applications. OLE (object linking and embedding) was a Windows only technology that allowed Office apps and apps developed by custom shops to directly share data or to embed app functionality directly into another app. Microsoft developed and heavily promoted the ActiveX technology for the Internet. ActiveX is "active execution" which was a method to install a COM control on a server web app and have it download to a local desktop and actively execute code on the local machine. This all worked well over the Internet, until the first hack! Today we call any ability for a web application to download and execute directly on a local machine a virus.
What is the long-term direction?
Through the years Microsoft like all software companies fought for market space and user experience to create market share. Microsoft took the approach of heavy application integration from the OS to the App. This allowed Microsoft to share data between its apps giving the user a great experience. You could open a Word document and have an embedded Excel spreadsheet there, and more, you could edit the Excel spreadsheet directly from Word. Seemed like magic. Again, pre-Internet and a in completely contained network environment, you could safely share executable code. Microsoft promoted the DDE (dynamic data exchange) technology. DDE is unthinkable today. DDE allowed apps to share the same physical memory area. App1 could directly access the physical memory space of App2. Access and many thousand custom applications pre-2016 are destined for legacy environments. Microsoft has not absolutely killed Access or other custom apps that depend on all these old technologies, they just "try" to not kill them, and they offer workarounds where possible. The customer must determine the risk themselves. Anybody in enterprise IT knows this "workaround" solution is not a solution at all.
Microsoft Azure was released in 2010 as 64-bit only. Microsoft Office stopped shipping installable versions in 2016. This means that MS Office is NOT a desktop app. Office now runs on multiple operating systems (Apple and Android). Office now uses a just in time (JIT) download of the bits necessary to run your Office app. Installing it on your computer downloads a shell with enough functionality to let it behave as a desktop app. The JIT unlike ActiveX is run in a sandbox environment with no access to the OS directly. The current execution model uses isolated memory and OS API calls to access anything outside itself. Because of this many of the "features" of prior editions of Windows desktop app (aka Win32) have been discontinued or severely limited.
Microsoft is steadily moving away from all support for Windows desktop as it was once known. Microsoft has stopped developing its Universal Windows Platform (UWP) and has now merged its previous Win32 Windows Presentation Foundation (WPF) as its desktop development environment. Microsoft has removed restrictions allowing only UWP apps in its Windows Store now called Microsoft Store. With its recent push to virtualized Windows 11 OS even the desktop is a vanishing environment. Access is most likely to become a part of Dynamics. This way Microsoft can finally kill it.
Bottom Line - Bridge the Gap
IT departments: do yourself a favor and help your business partners find a #NoCode solution where they can migrate their Access database to the cloud; before they blame you for not telling them that Access will stop working one day.
Business users: talk to your IT departments and discuss with them what kind of #NoCode solutions they support. Find out how you can secure your data, maintain compliance, and build solutions yourself so you can modernize your old Access app.