Access2base - recordset.fields().Value

Hallo zusammen,

ich experimentiere in LO 7.0.3 auf meinem Mac mit access2base und einer Firebird-Datenbank. Folgender Code bringt mich gerade zur Verzweiflung:

Dim objRec As Object
Dim objCon As Object
Dim objField As Object

If GlobalScope.BasicLibraries.hasByName("Access2Base") Then
	GlobalScope.BasicLibraries.loadLibrary("Access2Base")
End If
Call Application.OpenConnection(ThisDatabaseDocument)


Set objCon = Application.CurrentDb()
Set objRec = objCon.OpenRecordset("SELECT * FROM KONTAKTE")
Dim intCount As Long

intCount = 0

While Not objRec.EOF
	intCount = intCount + 1
	' Die folgende Zeile verursacht den Fehler:
	' Error #13 (Datentypen unverträglich) aufgetreten in Zeile 407 in Field.getValue
	msgBox objRec.Fields("NAME1").Value
	objRec.MoveNext()
Wend
objRec.MoveFirst()

Die Zeile:

msgBox objRec.Fields("NAME1").Value

sollte dabei eigentlich, den Inhalt des Feldes ausgeben, tatsächlich erhalte ich allerdings die Fehlermeldung:

Error #13 (Datentypen unverträglich) aufgetreten in Zeile 407 in Field.getValue

Es ändert auch nichts, wenn ich versuche, die Ausgabe in einen String zu casten.

Ich möchte access2base verwenden, da hier die Methoden moveFirst und moveNext funktionieren, wie sie sollen.

Sieht jemand meinen Fehler?

Zum einen: access2base unterstützt nicht mehr Funktionen als Basic selbst hat. Das ganze ist lediglich für die Leute gedacht, die aus der Access-Ecke mit Makros vertraut sind und die auch in Base so einsetzen wollen.

Zum anderen: Firebird ist wieder in den experimentellen Zustand zurückgesetzt worden, weil einige Dinge einfach nicht so funktionieren, wie wir es von der HSQLDB gewohnt sind. Die Bewegungen des Cursors durch Datensätze über Makros gehört unter anderem dazu. Das, was Du da schilderst, könnte in diese Richtung passen: Bug 118094. Siehe dort besonders Comment 12 zu Bug 118094.

Teste einmal an einem kleinen Beispiel mit der HSQLDB. Wenn der Bug dort nicht vorkommt, dann liegt es an der Bewegung durch die Datensätze mittels Basic.

@RobertG - Nur zur Einordnung, folgende Info: OP schreibt “Ich experimentiere in LO 7.0.3 auf meinem Mac” und da liegt der Hase wegen des Bugs #tdf135479 im Pfeffer. HSQLDB benötigt Java (i.e. JDK im Falle von macOS), welches unter macOS zwar erkannt wird, aber wegen des Bugs bei der Verwendung einen Fehler auswirft, dass das JRE defekt sei. Das ist vermutlich auch der Grund warum OP mit access2base experimentiert (siehe auch OPs Frage: macOS Catalina LibreOffice 7.0.3 - JRE).

Danke für eure Antwort und Kommentar.
Genau! Firebird benötigt keine Javaumgebung, daher versuche ich Access2Base.

Ich habe den oben gezeigten Code gerade in LO 6.4.6 mit der Firebird-Datenbank ausprobiert, dort funktioniert er ohne Probleme. Interessanterweise, lässt sich das Recordset auch mehrere Male durchlaufen, was ja mit den Uno-Funktionen mit Firebird nicht möglich ist.

Dann geht wohl nichts an einer Bugmeldung vorbei. Denn das scheint ja eine Regression zu sein. Und so etwas wird in der Regel doch recht zügig bearbeitet.

@dimpflmoser hat geschrieben:

Hallo zusammen,

ich habe einen Bug-Report angelegt und es gibt bereits einen Patch:
https://bugs.documentfoundation.org/s…

Vielen Dank für eure Kommentare