Neuigkeiten:

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

Mobiles Hauptmenü

Mit SQL den letzten Wert aus einer Tabelle suchen

Begonnen von smily68, Juni 06, 2011, 09:42:24

⏪ vorheriges - nächstes ⏩

smily68

Hallo

Ich möchte aus einer Tabelle den letzten Wert suchen (letzte Einkaufs-Nr) Ich habe folgenden Code geschrieben, doch dieser funktioniert nicht

Dim db As DAO.Database
Dim EinkNr As Recordset

Set db = CurrentDb

Set EinkNr = db.OpenRecordset("SELECT Last Eink_ID From T_Eink ORDER BY Last Eink_ID;")
MsgBox EinkNr

Wer kann mir sagen, was ich falsch mache.

Gruss Daniel

MzKlMu

Hallo,
woran erkennst Du den letzten Wert, ist das immer die höchste ID?
Das muss nicht zwangsläufig der letzte Eintrag einer Tabelle sein.
Gruß Klaus

smily68

Hallo

Ich habe in der Tabelle unter Eigenschaften Sortierung die Tabelle nach der Eink_ID sortiert.

Aber kannst du mir sagen was ich falsch in meinem SQL Befehl mache, dass folgende Fehlermeldung kommt: Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Last Eink_ID'

Gibt es eine andere Lösung wie ich immer die höchste Eink_ID in einem Formular ermitteln kann. Das Formular hat keine Beziehung zum Einkauf.
Ich möchte in einer Dispositionsmaske (Anzeige aller Artikel nach Kriterien wie Menge 0, Menge kleiner Bestellpunkt) eine neue Bestellung mit Positionen erzeugen.

Gruss Daniel

MzKlMu

#3
Hallo,
das geht so gar nicht.
Das musst Du mit DMax() machen.
EinkNr = DMax("Eink_ID","T_Eink")
MsgBox EinkNr


Eine Sortierung ist mit DMax() bedeutungslos.
Gruß Klaus

DF6GL

Hallo,


"Wer kann mir sagen, was ich falsch mache."
nur bezüglich des Codes:



Dim db As DAO.Database
Dim EinkNr As Dao.Recordset

Set db = CurrentDb

Set EinkNr = db.OpenRecordset("SELECT Last (Eink_ID) From T_Eink ORDER BY Last Eink_ID;", dbOpensnapshot)
MsgBox EinkNr(0)

EinkNr.Close
Set EinkNr = Nothing


Wie Klaus schon sagt, ist "Last" eine völlig ungeeignete Methode , um den "letzten" DS, bzw. höchsten Wert eines Feldes zu eruieren.