Problemstellung:
Für 32Bit und 64Bit Office Versionen
Ab MS-Office 2010 gibt es eine 32bit und eine 64bit Variante.
Übernimmt man nun eine Datenbank nach 64bit und diese enthält API-Declare Anweisungen
erhält man in der Regel diese Fehlermeldung:
Ich möchte hier nur ein paar grundlegende Hinweise geben.
Ausführliche Informationen zu diesem Thema bei Microsoft
Ab MS-Office 2010 kommt die VBA IDE 7 zum Einsatz. Deshalb hat MS zwei bedingte Kompilierungskonstanten, VBA7 und Win64, eingeführt.
Daraus ergibt sich folgendes Grundgerüst für VBA Code für VBA 7, 32bit oder 64bit, und VBA 6 und älter.
#If VBA7 Then 'Code für 32 bit und 64 bit Office VBA 7 #If Win64 Then 'Code für 64-bit Office VBA 7 #Else 'Code für 32-bit Office VBA 7 #End If #Else 'Code für VBA 6 (32 bit) #End If
Daraus ergibt sich z.B. dieser Aufruf:
#If VBA7 Then 'Code für 32 bit und 64 bit Office VBA 7 #If Win64 Then 'Code für 64-bit Office VBA 7 Declare PtrSafe Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong #Else 'Code für 32-bit Office VBA 7 Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long #End If #Else 'Code für VBA 6 (32 bit) Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long #End If
Weitere Beispiele und Tools zur Umstellung findet Ihr hier:
Declaring API functions in 64 bit Office
Microsoft Office Code Compatibility Inspector
Windows API Viewer for MS Excel
Ähnliche Artikel
Weiterlesen...