Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Grumpy am September 05, 2018, 12:19:57

Titel: aus 4 werten (Datum) im Datensatz das letzte auswerten
Beitrag von: Grumpy am September 05, 2018, 12:19:57
Ich hab eine Tabelle in der je Datensatz 4 Datumswerte eingetragen werden können und im dümmsten Fall leer bleiben.
Mittels einer Abfrage möchte ich das letzte Datum bezogen auf die 4 Spalten in einer neuen Spalte auswerten.
Mit Max habe ich es nicht hinbekommen
:o
Titel: Re: aus 4 werten (Datum) im Datensatz das letzte auswerten
Beitrag von: DF6GL am September 05, 2018, 13:21:45
Hallo,

siehe
http://www.dbwiki.net/wiki/VBA_Tipp:_Minimum,_Maximum,_arithmetisches_Mittel,_geometrisches_Mittel,_Standardabweichung

und dort die Funktion fktMax()
Titel: Re: aus 4 werten (Datum) im Datensatz das letzte auswerten
Beitrag von: Beaker s.a. am September 05, 2018, 13:26:35
Hallo Franz,
Oder besser, das Datenmodell anpassen.

@grumpy
Max wertet keine Zeilen (Datensätze) aus sondern Spalten (Felder).
Die vier Spalten gehören in eine eigene Tabelle als 4 Datensätzen mit
einem Fremdschlüssel auf die vorhandene Tabelle.
Dann funktioniert's auch mit dem Nachbarn, eh ... mit Max.
Zeige uns ein Bild des Beziehungsfensters für weitere Hilfe.
gruss ekkehard
Titel: Re: aus 4 werten (Datum) im Datensatz das letzte auswerten
Beitrag von: Grumpy am September 05, 2018, 13:52:28
Datenmodell anpassen geht leider net. Hab die Tabelle so übernommen und die einzelnen Datumsangaben werden auch für andere Dinge verarbeitet...muss also damit leben wie es ist.
Die Beziehungen sind lediglich über eine 1:1 Verknüpfung einer ID Tabelle:Ersttab zu ID Tabelle Grunddaten aus der ich die zugehörigen Namen und Vornamen ziehen kann.
(Datenbank liegt auf einem Rechner ohne Internet und kann die nicht rüber holen)

Je ID sind in einer Tabelle Spaltenname: Modul_A, Modul_B.....Modul_D  jeweils Eingabemöglichkeiten für Datumseingaben.

Von diesen maximal 4 Datumswerten benötige ich jeweils das neuste.
Mit Max geht ja nur "Spaltenweise" zu suchen, ich benötige dies aber Zeilenweise....
Titel: Re: aus 4 werten (Datum) im Datensatz das letzte auswerten
Beitrag von: DF6GL am September 05, 2018, 14:33:59
Hallo,

dann nutze doch die vorgeschlagene Funktion   ::)
Titel: Re: aus 4 werten (Datum) im Datensatz das letzte auswerten
Beitrag von: Lachtaube am September 05, 2018, 14:48:41
Statt der Funktion vom DBWiki würde ich eine Vereinigungsabfrage wählen.SELECT Schluesselfeld, 1 As Position, Datum1 As Termin
FROM   Tabname
WHERE  Datum1 Is Not Null
UNION  ALL
SELECT Schluesselfeld, 2, Datum2
FROM   Tabname
WHERE  Datum2 Is Not Null
UNION  ALL
SELECT Schluesselfeld, 3, Datum3
FROM   Tabname
WHERE  Datum3 Is Not Null
UNION  ALL
SELECT Schluesselfeld, 4, Datum4
FROM   Tabname
WHERE  Datum4 Is Not Null
Diese Abfrage entspricht dann weitestgehend einer normalisierten Tabelle, ist jedoch nicht update-fähig und von Natur aus langsamer als eine echte Tabelle.SELECT Schluesselfeld, Max(Termin) As JuengsterTermin
FROM   Abfragename
Im Notfall (bei Langsamsamkeit in der Ausführung) kann man die Daten dieser Abfrage auch in eine Tabelle in ein Scratch-Backend schreiben und diese Tabelle ggf. ordentlich indizieren und verknüpfen.