Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Filterfunktion für Max und Min Werte

Begonnen von Piotor04, Mai 08, 2014, 17:36:51

⏪ vorheriges - nächstes ⏩

Piotor04

Hallo,
erstmal entschuldige ich mich, falls es jetzt etwas komplizierter wird ichv ersuch es so einfach wie möglich zu erklären.
Wir haben jedes Jahr hier eine Veranstaltung zu der Fahrzeuge unterschiedlichen Alters kommen und wir halten die in einer AccessDatenbank fest.
Am Ende vom Tag wollen wir eine kleine Übersicht ausdrucken in welcher das ÄLTESTE und das JÜNGSTE Fahrzeug aufgelistet sind.
Hierbei sollen aber NUR die Fahrzeuge berücksichtigt werden die im aktuellen Jahr gekommen sind. Also dieses Jahr nur die aus 2014 und nicht mehr die aus 2013.
in der Tabelle tblTeilnehmer werden alle Teilnehmer gespeichert und durch einen Kontrollkästen kann ermittelt werden wann das Auto  zugegen war.  Bezeichnungen hier:"2013anwesend" bzw. "2014anwesend"
Letztes Jahr hat dies alles sehr gut geklappt, da es ja auch das erste Jahr war.
Hierfür habe ich folgende Formel verwendet:
für das Baujahr des Autos: =DomWert("Baujahr";"tblTeilnehmer";"baujahr=" & DomMin("baujahr";"tblTeilnehmer"))

Da ich jetzt aber seit letztem Jahr nichts mehr an der Datenbank gemacht habe und auch beruflich auch nichts damit zu tun habe bin ich ein wenig aus der Übung und ich brauch es eigentlich schon recht zeitnah :-/

Was ich also wissen will:

Wie kann ich in der Abfrage innerhalb des Textfelds noch reinbringen, dass er nach dem Jahr 2014 "2014anwesend" suchen soll und die Daten von 2013 vernachlässigt?

Grüße und vielen herzlichen Dank

Peter

MzKlMu

Hallo,
der Aufbau der DB ist falsch. Ja/Nein Felder (kontrollkästchen) sind in dieser Form für eine Datenbank ungeeignet.
Du benötigst eine weitere Tabelle zur Erfassung der Teilnahmen.
In dieser Tabelle wird der Primärschlüssel des Teilnehmers (als Fremdschlüssel) gespeichert sowie in einem Feld das Jahr. Die KK in der Teilnehmertabelle entfallen ersatzlos.

Eine Abfrage mit beiden Tabellen kannst Du dann einfach auf das gewünschte Jahr filtern.

Erfasst Du in der DB keine Informationen zur Veranstaltung, also Datum, wo, Besonderheiten etc. ?
Gruß Klaus

Piotor04

Hallo,
Also in der Datenbank sind für jedes Auto mehrere Daten hinterlegt:
Besitzer
Marke
Modell
Baujahr
Anwesendes Jahr: 2013 (KK) 2014(KK)

Sprich wenn ich mit meinem Opel 2 mal da war '13 und '14 steh ich nur 1 mal in der liste jedoch beide KK angehakt.
Anschließend sollen alle die '14 da waren (Abfrage über KK möglich?) nach dem ältesten bzw. jüngsten Fahrzeug gefiltert werden. Sowie nach kompletter Teilnehmerzahl. Hat ansich so ganz gut funktioniert als es wie gesagt nur 1jahr gab *lach*

Das mit der 2ten Tabelle ist mir grad ein wenig zu hoch, versteh ich net recht. *rotwerd*

MzKlMu

Hallo,
Du benötigst folgende Tabellen:
tblAuto
AutoID (Primärschlüssel)
Besitzer
Marke
Modell
Baujahr

tblTeilnahmen
TeilnahmeID (Primärschlüssel)
AutoID_F (Fremdschlüssel)
TeinahmeJahr

Die KK entfallen.

Ich hatte auch noch eine Frage, die Du nicht beantwortet hast.
ZitatErfasst Du in der DB keine Informationen zur Veranstaltung, also Datum, wo, Besonderheiten etc. ?


Gruß Klaus

Piotor04

Huhu,
Sry war übers Wochenende unterwegs und konnte daher nicht antworten.

Das mit dem Primär und Fremdschlüssel bzw. 2 Tabellen werde ichmal probieren. Mir wird es dazu aber wohl nicht vor dem Fest reichen (Sonntag schon).

Daten zur Veranstaltung sind bei uns uninteressant. In dem späteren Ausdruck den jeder Teilnehmer erhällt steht folgendes:

Logo des Vereins (Ort enthalten) sowie die wievielte Veranstaltung es war und wie sie hieß.
Dazu kommen noch die technischen Daten sowie die Daten des Besitzers des Autos.
Das habe ich jetzt aber nicht alles dazu geschrieben, da die wichtigen Dinge ja bekannt sind :-) (Auto, Jahr, Baujahr)
Oder?

Grüße

database

Hallo,

Zitatsowie die wievielte Veranstaltung es war und wie sie hieß.
passt mit deiner Aussage ...
ZitatDaten zur Veranstaltung sind bei uns uninteressant

demnach nicht ganz zusammen - rein datentechnisch

ZitatDazu kommen noch die technischen Daten
... die du woher beziehst?

Dazu sollten Marke und Modell in eigenen Tabellen ausgelagert sein und in die tblAuto per 1:n Beziehung eingebunden werden.

Wenn du kein normalisiertes Datenmodell verwendest wird sich das früher oder später in einem Datensumpf wiederspiegeln.


Piotor04

okay okay, lassen wir doch mal den Veranstaltungsort und so weg, das trag ich alles händisch ein, da sich der Ort nicht ändert und daher nur 1 mal eingetragen werden muss und bei jedem Auto nachher der Selbe ist. Kann ich also einfach in ein Textfeld schreiben und fertig ;-)

Ich dachte einfach, als ich vor einem Jahr die DB gemacht habe, dass es einfach ist ein Kontrollkästchen in eine Verknüpfung ein zu bauen, scheint aber irgendwie nicht der Fall zu sein. Weil ansich funktioniert alles nur das eben nicht ;-)

Ich habe es mit dieser Funktion versucht:

=DomWert("Baujahr";"tblTeilnehmer";"Baujahr=" & DomMin("Baujahr";"tblTeilnehmer";"[2013 anwesend]=True"))
bzw:
=DomWert("Baujahr";"tblTeilnehmer";"Baujahr=" & DomMin("Baujahr";"tblTeilnehmer";"[2013 anwesend]=-1"))

in meinen Augen sagt dieser Ausdruck soviel wie (in Prosa jetzt):
In der Tabelle tblTeilnehmer, das Baujahr nachgeschlagen, bei dem der Wert von Baujahr gleich dem minmalwert Baujahr in der Tabelle Teilnehmer ist, mit der Bedingung, dass 2013 True sein muss.

Ausgabe ergibt aber #Fehler.

Mit meinen Kentnissen schaffe ich es leider nicht in 3 Tagen die DB so umzubauen, dass sie super toll ist. Damit muss man eben wachsen ;-)
Aber wenn ihr mir helfen könntet den obigen Kode gescheit an zu passen, wäre ja schonmal ein Problem weg und ich könnte dann nach dem diesjährigen Fest an der DB weiter machen :-)

Grüße Peter

MaggieMay

Hi,
wozu 'DomWert', wenn dir 'DomMin' bzw. 'DomMax' bereits das gesuchte Jahr liefern?
Freundliche Grüße
MaggieMay

Piotor04

Es ist ja nicht nur für das Jahr sondern für mehrere Datenwerte aus dieser Tabelle:



So soll es aussehen und es soll nach ältestem bzw. jüngstem Fahrzeug suchen und dabei die passenden Werte ausgeben.
Irgendwie hat es jetzt auch geklappt und er zeigt keinen #Fehler mehr an.

Komisch