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
Hallo,
aber die ID ist doch eine Zahl, Du hast ja auch als Long deklariert.
Also Hochkomma weg.
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
Kaskaden von Domänenaggregatfunktionen sind nicht so überzeugend.
LetzteNummer = DLookup("Rechnungsnummer", "tblBeispiel", _
"ID = (SELECT MAX(ID) FROM tblBeispiel)")
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
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