Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Mokkie am September 26, 2023, 13:23:32

Titel: GUID Funktion läuft nicht mehr
Beitrag von: Mokkie am September 26, 2023, 13:23:32
Hallo,

ich habe eine alte Anwednung, mdb auf eine neue Version Access 365 umgestellt.
Funktioniert soweit, nur bei meiner Funktion zur Erstellung einer GUID bleibt er hängen und sagt mit Typenunverträglichkeit. Hier die Funktion

Die genaue Stelle in dieser Fkt.: VarPtr(bGUID(0))[/b], clLen)
Function CreateGUID() As String
Const clLen As Long = 50
Dim sGUID As String
Dim tGUID As GUID
Dim bGUID() As Variant
Dim lRtn As Long
Dim i As Integer
Dim bastelsGuid As String



    If CoCreateGuid(tGUID) = 0 Then
        bGUID = String(clLen, 0)
        lRtn = StringFromGUID2(tGUID, [b]VarPtr(bGUID(0))[/b], clLen)
        If lRtn > 0 Then
            sGUID = Mid$(bGUID, 1, lRtn - 1)
        End If
        ' Alle Zeichen ausser Zahlen aus dem String
        ' entfernen
        For i = 1 To Len(sGUID)
            If IsNumeric(Mid(sGUID, i, 1)) Then              ' Hier mit weiterer Schleife
                bastelsGuid = bastelsGuid & Mid(sGUID, i, 1) 'eventuel benötigte Leerzeichen einbauen
            End If
        Next i
       ' GUID übergeben
       CreateGUID = bastelsGuid

    End If

End Function

Das ganze funktioniert im alten System.

Kann es sein, dass es dort Probleme mit den dll's gibt?

' API's
Private Declare PtrSafe Function CoCreateGuid Lib "ole32.dll" (tGUIDStructure As GUID) As Long

Private Declare PtrSafe Function StringFromGUID2 Lib "ole32.dll" (rGUID As Any, _
    ByVal lpstrClsId As Long, ByVal cbMax As Long) As Long

Grüße, Babsi

Titel: Re: GUID Funktion läuft nicht mehr
Beitrag von: markusxy am September 26, 2023, 14:00:44
Das Problem hast du nur bei einem Wechsel auf 64 Bit, da die Deklaration nicht angepasst wurde.
VarPtr liefert einen Pointer und in der Deklaration steht ByVal lpstrClsId As Long der Datentyp long - das müsste aber LongPtr sein, damit die Variable einen Pointer aufnehmen kann.

Die restlichen Parameter und vor allem die GUID Struktur sollten natürlich auch geprüft werden, wobei die Struktur das Heikelste ist, beim Rest werden Fehler eher verziehen ;)
Titel: Re: GUID Funktion läuft nicht mehr
Beitrag von: Mokkie am September 26, 2023, 16:31:27
Hallo Markusxy,

hab vielen Dank, ich wedre das prüfen.

Gruß, Babsi