Hallo,
ein Langzeitkunde von mir hat im Laufe von fast 20 Jahren eine Datenbank (damals Access 97) von mir entwickelt bekommen. Im Laufe der Zeit wurde die Access version immer wieder erneuert. Aktuell hat er Access 2019 32 bit. Jetzt möchte der Kunde auf Office 365 64bit umsteigen. Im Access sind von mir sehr viele Code mit externen DLLs versehen. Z.B. Click-to-Call über SIP, etc... Diese sind teilweise 32bit. Wird es da Probleme geben, wenn ein 64bit Access diese DLLs öffnen möchte?
Zitat von: sodah am Januar 04, 2023, 10:48:23Im Access sind von mir sehr viele Code mit externen DLLs versehen. Z.B. Click-to-Call über SIP, etc... Diese sind teilweise 32bit. Wird es da Probleme geben, wenn ein 64bit Access diese DLLs öffnen möchte?
Ja! Es wird massive Probleme geben, weil ein 64Bit-Prozess keine 32Bit-DLLs laden kann. Gar nicht!
Die einzige Lösung dafür ist die 32Bit-DLLs durch 64Bit-DLLs zu ersetzen. Leider gibt es eine ganze Menge an externen Komponenten, für die es keine 64Bit-Version gibt, einfach weil der jeweilige Anbieter diese nie erstellt hat.
Hallo!
32-Bit-dlls können mit 64-Bit-VBA nicht genutzt werden.
Notfalls kannst du über die Windows-Komponenten-Dienste eine 32-bit-dll für 64-bit-Anwendungen bereitstellen.
Ob das auch mit Access funktioniert, weiß ich allerdings nicht.
Mit .net funktionierte es bei mir mit einer 32-bit-COM-dll.
Gruß
Josef
Zitat von: Josef P. am Januar 04, 2023, 11:26:14Notfalls kannst du über die Windows-Komponenten-Dienste eine 32-bit-dll für 64-bit-Anwendungen bereitstellen.
Hast du einen Link zu weiteren Informationen?
Ich habe zwar ein paar wenige Support-Texte von Drittanbietern gefunden, die scheinbar diese Funktionalität nutzen, aber es wird dabei i.d.R. ein nicht-öffentliches Script verwendet, dass die wesentliche Konfiguration vornimmt.
In der Dokumentation der Windows Component Services (https://learn.microsoft.com/en-us/windows/win32/cossdk/component-services-portal) habe ich noch keine Information zu diesem spezielle Szenario gefunden.
Hallo!
Ich machte das für die tlbinf32.dll, die es in 64 bit nicht gibt, da ich beim Umschreiben von AccUnit für 64-Bit-Office diese dll anfangs noch in Verwendung hatte.
Prinzip:
In dem Komponentendiensten (comexp.msc) eine neue COM+-Anwendung erstellen. Danach unter "Komponenten" im Kontextmenü "Neu/Komponenten" auswählen und die 32-bit-dll über den Assistenten auswählen.
Danach konnte ich diese tlbinf32-Funktionalität in einer .net-64-bit-COM-dll nutzen. (Getestet über den Aufruf der 64-bit-.net-dll aus Access 64 bit.)
LG
Josef