Can't Open ACCDE made with Access 2016 (32-bit) | Eine mit Access 2016 erstellte ACCDE (32-Bit) lässt sich mit Access 2019 nicht öffnen.

Bryant, Curtis 1 Reputation point
2021-01-29T16:45:19.677+00:00

I made an Access application (ACCDE) for a user using Access 2016 (32-bit) that uses VBA and connects to an MS SQL-Server database on our network via ODBC. It used to work, but the user can no longer open it. The first error message the user reported is "The database cannot be opened because the VBA project contained in it cannot be read":
61925-accdeerror20210128.jpg

Then IT upgraded the user's Access version to 2019 and now reports this error: "The expression you entered has a function name that Microsoft Access can’t find."

It still opens for me, so the file isn't corrupt. Here are some potential solutions:

But what do you recommend?

----------------------------

Ich habe eine Access-Anwendung (ACCDE) für jemanden mit Access 2016 (32-Bit) entwickelt, die VBA verwendet und über ODBC eine Verbindung zu einer MS-SQL-Server-Datenbank in unserem Netzwerk herstellt. Früher hat sie funktioniert, aber nach einem Update auf Access 2019 kann die Benutzerin die Anwendung nicht mehr öffnen. Die erste vom Benutzer gemeldete Fehlermeldung lautet "Die Datenbank kann nicht geöffnet werden, da das darin enthaltene VBA-Projekt nicht gelesen werden kann":

Anschließend hat die IT die Access-Version der Benutzerin auf 2019 aktualisiert und meldet nun diesen Fehler: "Der eingegebene Ausdruck hat einen Funktionsnamen, den Microsoft Access nicht finden kann."

Die ACCDE-Datei lässt sich immer noch für mich öffnen, sodass die Datei nicht beschädigt ist. Hier sind einige mögliche Lösungen:

die IT bitten, die 32-Bit-Microsoft Access 2016-Laufzeit auf dem Computer der Benutzerin zu installieren. (https://www.microsoft.com/en-us/download/details.aspx?id=50040)  
darum bitten, dass meine eigene Office-Installation auf 2019 aktualisiert wird, und die ACCDE erneut erstellen.  

Aber was könnt ihr mir empfehlen?

Falls ich radebreche, Entschuldigung! Ich versuche, meine Deutschkentnisse zu verbessern.

Access Development
Access Development
Access: A family of Microsoft relational database management systems designed for ease of use.Development: The process of researching, productizing, and refining new or existing technologies.
834 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Albert Kallal 4,971 Reputation points
    2021-02-02T02:29:06.203+00:00

    There are quite a few details here.

    You note:

    Ok - that looks like your issue.

    WHEN you deploy a accDE, then that is pre-compiled code.
    That means:

    You in most cases have to use the SAME version of Access to run the accDE that it was created with. However, if you create a accDE say in 2013, then in most cases 2016 or later CAN run and consume and use that accDE.

    However ONE bit exception exists:
    You can not in ANY case run a x32 accDE with Access x64. And the REVERSE is also true.

    In other words, accDE's are defined as a particular bit size.

    There are several solutions:

    Distribute a accDB. (this option I don't like, but it is a one choice and one solution). Because the accDB has the source code (VBA) included, then Access on startup will re-compile the code if you launch the same application with Access x64 bits. (or with x32 - a accDB can go BOTH ways automatic).

    This means you have to obtain a copy of x64 Access, and re-compile the accDE using a x64 bit version of Access. This is somewhat of a challenge, since x32 machines will now fail. This suggests that you have to maintain TWO copies for distribution. One for x32 Access and one for x64.

    I think the best solution is to always within your company environment ALWAYS BUT ALWAYS adopt the SAME bit size of office on all machines.

    Changing the whole bit size architecture is a VERY LARGE undertaking for any company, and just out of the blue mixing and matching bit sizes is a really bad idea.

    When the time comes to make the change and jump to office x64 bits (which is becoming quite common right now), then MUCH planning and setting aside appropriate budgets and people to help in this transition needs to be put in place. (so care needs to be taken when such a big jump and change in software is going to occur).

    This is a big jump, and like changing from say 16 bit computers (say windows 3.1) to windows 95 is a big event, and does require careful thought and careful planning by the IT people.

    Right now? I would strong try and stick to x32, or move all computers to x64. If this is a roll out over time, then you simply have to maintain and distribute two accDE's. Once compiled and created with office (Access) x64, and one accDE created with office (Access) x32.

    As noted, you can distribute a accDB - that will run + work automatic for x32 and x64 machines.
    However, a accDB written and assumed to be run as accDE has its own list of issues that the developers may well not have assumed in the first place.

    So, x32 accDE's and x64's accDE are VERY specific to the bit size and architecture they were compiled with - and the target machines MUST run the same bit size to consume a accDE that it was created with - NO exceptions exist to this rule.

    If this is roll out and transition over time from x32 office to x64, then you have to maintain and compile (create) two accDE's. One for the machines with office x32, and one for the machines with office x64. As noted, another possible during this transition is to distribute non compiled accDB's.

    Regards,

    Albert D. Kallal (Access MVP 2003-2017)
    Edmonton, Alberta Canada

    0 comments No comments