Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: junjon am Dezember 01, 2021, 21:28:40

Titel: Recordset SEEK Methode mit LongLong Index
Beitrag von: junjon am Dezember 01, 2021, 21:28:40
Hallo zusammen,
Mein Name ist junjon, ich arbeite semihobbymäßig mit Access.

Beim Durchsuchen eines Recordsets mit der Seek Methode ist mir aufgefallen dass sobald der Indexwert den Typ LongLong hat, nie ein Eintrag gefunden wird. In der Doku habe ich nichts dazu gefunden, weiß da jemand mehr zu?


Falls es jemand testen möchte:
Tabelle1 ist eine Tabelle mit einem indizierten Feld longindex. Wenn der Datentyp von longindex Zahl, oder kurzer Text ist, gibt es keine Ausgabe, bei Großer Ganzzahl "Kein Eintrag gefunden".
Sub test()
Dim rst As DAO.Recordset
Dim db As DAO.Database
Dim test As Variant
Set db = CurrentDb
Set rst = db.OpenRecordset("Tabelle1")
test = rst!longindex
rst.Index = "longindex"
rst.Seek "=", test
If rst.NoMatch Then Debug.Print ("Kein Eintrag gefunden")
Set rst = Nothing
Set db = Nothing
End Sub
Titel: Re: Recordset SEEK Methode mit LongLong Index
Beitrag von: markusxy am Dezember 02, 2021, 08:02:47
Hallo,

aus meiner Sicht ist die einzige mögliche logische Erklärung ein Null Wert in der Variable test.
Wenn das ausgeschlossen ist, dann gibts möglicherweise ein Problem mit 64Bit Integer.
Verwendest du 32Bit Access?
Titel: Re: Recordset SEEK Methode mit LongLong Index
Beitrag von: ebs17 am Dezember 02, 2021, 09:18:10
Vielleicht müsste man auch explizit Recordset2 verwenden.
Titel: Re: Recordset SEEK Methode mit LongLong Index
Beitrag von: PhilS am Dezember 02, 2021, 10:55:58
Zitat von: junjon am Dezember 01, 2021, 21:28:40Beim Durchsuchen eines Recordsets mit der Seek Methode ist mir aufgefallen dass sobald der Indexwert den Typ LongLong hat, nie ein Eintrag gefunden wird.
Ich kann das Problem sowohl mit 32bit- als auch 64bit-Access reproduzieren.

Zitat von: ebs17 am Dezember 02, 2021, 09:18:10Vielleicht müsste man auch explizit Recordset2 verwenden.
Das macht für mich keinen Unterschied.
Titel: Re: Recordset SEEK Methode mit LongLong Index
Beitrag von: junjon am Dezember 02, 2021, 12:17:56
Ich habe es unter 64-Bit ausprobiert. Recordset2 macht bei mir ebenfalls keinen Unterschied.

Ich habe es nochmal für die anderen Datentypen getestet, entweder diese lassen sich garnicht erst als Index einrichten oder die Seek Methode funktioniert,nur der LongLong macht nicht so ganz mit. Hat jemand ne idee ob/warum das gewollt sein könnte?
Titel: Re: Recordset SEEK Methode mit LongLong Index
Beitrag von: markusxy am Dezember 02, 2021, 12:44:28
Zitat von: junjon am Dezember 02, 2021, 12:17:56Hat jemand ne idee ob/warum das gewollt sein könnte?

Da fällt mir kein schlüssiger Grund ein.
Ich nehme mal an, es spielt auch keine Rolle, wenn du das Feld zum PK machst.
Titel: Re: Recordset SEEK Methode mit LongLong Index
Beitrag von: PhilS am Dezember 04, 2021, 11:00:17
Zitat von: junjon am Dezember 02, 2021, 12:17:56Hat jemand ne idee ob/warum das gewollt sein könnte?
Es ist nicht gewollt, sondern ein Bug. Der Bug wird wahrscheinlich in einer zukünftigen Version von Microsoft Access behoben.