1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

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