Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Auslesen des letzten Datensatzes

Begonnen von herb54, Januar 29, 2021, 09:10:23

⏪ vorheriges - nächstes ⏩

herb54

Hallo, ich möchte ein Feld (Rechnungsnummer) des letzten Datensatzes einer Tabelle auslesen und bekomme einen Datentypenkonfliktfehler 3464.

Hier ist mein VBA Code:
Dim RnrI As Integer, RnrS As String, LetzteNummer As String
Dim MAXid As Long

MAXid = DMax("ID", "tblBeispiel")
MsgBox MAXid

LetzteNummer = DLookup("Rechnungsnummer", "tblBeispiel", "ID ='" & MAXid & "'")


Das Feld Rechnungsnummer ist ein String.
MAXid wird richtig ausgelesen. Aber im letzten Teil kommt die Fehlermeldung (3464).
Irgendwie komme ich jetzt nicht drauf warum diese Angabe (LetzteNummer = ....) falsch sein sollte???
Grüße
Herbert

MzKlMu

Hallo,
aber die ID ist doch eine Zahl, Du hast ja auch als Long deklariert.
Also Hochkomma weg.
Gruß Klaus

herb54

Hallo Klaus,

super vielen Dank! Das geht jetzt auch (ID =3219). Leider bekomme ich nicht die Rechnungsnummer des letzten Datensatzes wenn ich mir über die MsgBox "LetzteNummer" anzeigen lasse sondern irgendeine bei ID = 839.

Dim RnrI As Integer, RnrS As String, LetzteNummer As String
Dim MAXid As Long

MAXid = DMax("ID", "tblBeispiel")
MsgBox MAXid

LetzteNummer = DLookup("Rechnungsnummer", "tblBeispiel", ID = MAXid)
MsgBox ID
MsgBox LetzteNummer

ebs17

Kaskaden von Domänenaggregatfunktionen sind nicht so überzeugend.
LetzteNummer = DLookup("Rechnungsnummer", "tblBeispiel", _
    "ID = (SELECT MAX(ID) FROM tblBeispiel)")
Mit freundlichem Glück Auf!

Eberhard

herb54

Vielen Dank,


LetzteNummer = DLookup("Rechnungsnummer", "tblBeispiel", _
    "ID = (SELECT MAX(ID) FROM tblBeispiel)")

aber leider immer noch erscheint als "LetzteNummer" wieder die mit der ID = 839 der Tabelle.
Ich wollte eigentlich nicht mit einem Recordset arbeiten, aber langsam glaube ich muss ich das doch. Ich verstehe auch nicht weshalb da eine Rechnungsnummer mit ID = 839 erscheint und nicht 3219???
Grüße
Herbert

herb54

Hallo Eberhard,

sorry es geht doch!!! Ich hatte die alte Anweisung noch am Ende unbemerkt stehen lassen und dies nicht bemerkt. Funktioniert einwandfrei!!! Vielen Dank an alle!!!
Grüße
Herbert