PDA

Vollständige Version anzeigen : Vorhergehenden Datensatz ermitteln


kingcasi
05.07.2006, 14:55
Hallo,

ich weiß nicht, wie ich das Problem angehen soll:

Mit meiner Datenbank will ich ausgeliehene Bücher verwalten. Die Tabelle hat folgende Felder:

[BuchNr] [Ausleiher] [AusgeliehenAm] [ZurueckAm]

Wenn ein Buch nicht ausgeliehen ist, sind alle vier Felder gefüllt. Nun will ich ermitteln, wie lange das letzte Mal das Buch ausgeliehen war (nach dem Motto: zeige mir alle Datensätze von BuchNr und ermittle davon den letzten Datensatz). Das bekomme ich ja auch via Abfrage hin.
Problem besteht bei Büchern, die zur Zeit ausgeliehen sind. Wenn ich so vorgehe wie oben, wird mir ja der letzte Datensatz angezeigt, in dem kein Rückgabe-Datum eingetragen ist. Also will ich den VORletzten Datensatz ermitteln, jedoch den aktuellen Ausleiher.

Klingt ein wenig kompliziert - ist es aber auch.

Ich weiß ehrlich gesagt nicht, wie ich das angehen soll. Selbst die Suche im Forum bringt mich auf keine Idee.

Gruß, Casi

Roland04
05.07.2006, 15:06
dann baue in die abfrage ein maxvonStartdatum ein where endDatum not null
müsste den letzten vollständigen record mit rückgabe ergeben

kingcasi
05.07.2006, 15:09
Ja, das wäre auch nicht schlecht, aber ich will den Namen im letzten unvollständigen Datensatz dazu haben.

Vielleicht mittels SQL. Aber da weiß ich nicht, wie ich in dem Suchergebnis mittels VBA navigiere. Wenn Du weißt, wo ich sowas erfahren kann, wäre das nicht schlecht.

Roland04
05.07.2006, 16:15
kannst du aus zwei abfragen bekommen - eine wie in #2 und mit der 2. ohne dem where ... also das letzte startdatum. dann kannst du in einer 3. abfrage über die buchID (wird es ja wohl geben?) auf den namen aus der 2. abfrage zugreifen

Paul.Ostermeier
05.07.2006, 17:06
@kingcasi
nachfolgende Abfrage sollte Dir den "richtigen" Datensatz liefern ...

SELECT TOP 1 t1.*
FROM DeineTabelle AS t1
WHERE (((t1.[BuchNr]) = [Forms]![DeinFormular]![BuchNr] ))
ORDER BY t1.[ZurueckAm] DESC

MfG
Paul

kingcasi
05.07.2006, 18:55
Der Ansatz hat mir weitergeholfen! Danke.