Hallo Leute,
Ich habe seit einiger Zeit ein Problem mit dem Updaten einer Access Datenbank über eine json api. Ich tippe mal drauf dass es seit unserer Umstellung auf 64bit Office (weil das neue Altium nur mehr mit der 64bit Runtime funktioniert) nicht mehr geht. Heute habe ich etwas debugged und festgestellt dass FindFirst einen Laufzeitfehler 3001, ungültiges Argument verursacht:
Das war der "alte" code der bis vor kurzem noch funktioniert hat:
For Each Item In Response.data("Teil")
rs.FindFirst "[ID] = " & Item("id") ---> Fehler bein 2. Durchlauf der Schleife
...
Loop While Not rs.NoMatch
...und jetzt wirds spannend, zumindest für mich, ich bin kein vba Experte. Ich habe den Text für die Abfrage mal über einen String auf verschiedene Arten zusammengebaut und ausgegeben:
Variante 1:
Debug.Print ("[ID] = " & Item("id"))
---> [ID] = 1003087 (das wäre der korrekte Text)
Variante 2:
Dim temp As String
temp = "[ID] = " + Item("id")
Debug.Print (temp)
---> [ID] = 1003087 (Durchlauf 1)
10033091003309 (Durchlauf 2...)
Variante 3:
Dim temp As String
temp = "[ID] = "
Debug.Print (temp)
temp = temp + Item("id")
Debug.Print (temp)
---> [ID] = (Durchlauf 1)
[ID] = 1003087
[ID] = (Durchlauf 2)
10033091003309
Variante 4:
Dim temp As String
temp = Item("id")
Debug.Print (temp)
temp = "[ID] = " + temp
Debug.Print (temp)
---> 1003087 (Durchlauf 1)
[ID] = 1003087
1003309
[ID] = 1003309 (Durchlauf 2)
Kann mir das jemand erklären? Vor allem Variante 3? Da muss ich ja was grobes übersehen haben...
Schöne Grüße,
Christian.
|