Eine Familie von Microsoft-Managementsystemen für relationale Datenbanken, die auf Benutzerfreundlichkeit ausgelegt sind
Hinweis: Diese Antwort wurde automatisch übersetzt. Daher kann es grammatikalische Fehler oder unbeholfene Ausdrücke enthalten.
Hallo Andreas Schubert
die Fehlermeldung weist darauf hin, dass die Access-Datenbank VBA-Code enthält, der ursprünglich für eine 32-Bit-Version von Office geschrieben wurde und nun in einer 64-Bit-Installation von Microsoft 365 geöffnet wird.
Nach meinen Recherchen gibt es kein Tool von Microsoft, das den gesamten VBA-Code automatisch für die 64-Bit-Kompatibilität konvertiert. Stattdessen muss der VBA-Code der Datenbank überprüft und gegebenenfalls angepasst werden. Insbesondere müssen Windows-API-Declare-Anweisungen mit dem Attribut PtrSafe ergänzt werden. In einigen Fällen sind außerdem Anpassungen von Datentypen, beispielsweise von Long zu LongPtr oder LongLong, erforderlich. Microsoft empfiehlt die Verwendung von PtrSafe-Deklarationen für VBA7- und 64-Bit-Office-Umgebungen.
Beispiel:
'32-Bit-Code
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
'64-Bit-kompatibler Code
Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
So können Sie die betroffene Codezeile finden:
- Halten Sie beim Öffnen der Datenbank die Umschalttaste (Shift) gedrückt (sofern kein Startcode dies verhindert).
- Drücken Sie Alt + F11, um den VBA-Editor zu öffnen.
- Wählen Sie Debuggen > Kompilieren.
- Access markiert normalerweise die erste inkompatible
Declare-Anweisung, die angepasst werden muss.
Falls die Datenbank von einem Drittanbieter entwickelt wurde, ist es oft am einfachsten, den ursprünglichen Entwickler zu kontaktieren und nach einer Version zu fragen, die 64-Bit-Office unterstützt.
Weitere Informationen finden Sie in der Microsoft-Dokumentation:
Als Workaround kann alternativ die 32-Bit-Version von Microsoft 365 Apps installiert werden. Dies ist häufig die einfachste Lösung für ältere Access-Anwendungen, die ursprünglich für 32-Bit-Office entwickelt wurden.
Ich hoffe, diese Informationen helfen Ihnen weiter.