Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: wuffwuff2003 am Juni 26, 2014, 14:14:06

Titel: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juni 26, 2014, 14:14:06
Hallo,
Ich habe eine Abfrage mit 4 Felder: Name / Ereignis / Ereignis 2 / Ereignis 3.
Nun möchte ich dass der Name in der Abfrage verschwindet wenn alle Ereignisse (wahr/falsch-Felddatentyp) wahr sind.
Wenn ich aber in der Abfrage in jedem feld WAHR in das Kriterium setze funktioniert es nicht. Ebenfalls mit NICHT WAHR. Wie könnte ich das Problem lösen?
Mfg
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MzKlMu am Juni 26, 2014, 14:44:44
Hallo,
hat die Ausgangstabelle den gleichen Aufbau, mit den 3 Feldern Ereignis / Ereignis 2 / Ereignis 3 ? Wenn Ja, ist das Datenmodell falsch, es fehlt eine weitere Tabelle.

Und heißt das Feld wirklich Name?
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juni 26, 2014, 14:53:29
Hallo
Ja die Tabelle enthält auch diese 3 Ereignis Felder mitsamt dem Namen.
Ansich heisst der Name richtig : Komplettname (Da Name ja ein Schlüsselwort ist)
Danke
Mfg
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MaggieMay am Juni 26, 2014, 15:03:03
Hallo,
ZitatWenn ich aber in der Abfrage in jedem feld WAHR in das Kriterium setze funktioniert es nicht.
zeig doch bitte mal den SQL-Code dazu.
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MzKlMu am Juni 26, 2014, 15:28:35
Hallo,
unabhängig von einer möglichen SQL Lösung ist das Datenmodell falsch. Es werden 2 weitere Tabellen benötigt eine für die Ereignisse (je ein Datensatz und nicht je ein Feld) und eine Tabelle zur Zuordnung der Ereignisse zur Person. Die Ja/nein Felder entfallen ersatzlos.
Das ist eine klassische n:m Beziehung zu der 3 Tabellen erforderlich sind.

Siehe auch:
Microsoft Access Tips for Casual Users (http://allenbrowne.com/casu-23.html)
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juli 01, 2014, 11:10:34
Hallo,
Hat ein bisschen gedauert, hier ist der SQL Code: (nomcomplet = Komplettname)
SELECT tbl_Uebersicht.ID, tbl_Uebersicht.Nomcomplet, tbl_Uebersicht.[Matricule Cem], tbl_Uebersicht.Case, tbl_Uebersicht.Roulement, tbl_Uebersicht.[Service D'attache], tbl_Uebersicht.Reseau_conduite, tbl_Uebersicht.hlt1, tbl_Uebersicht.hlt2a, tbl_Uebersicht.hlt2b, tbl_Uebersicht.hlt4, tbl_Uebersicht.hlt6, tbl_Uebersicht.fp, tbl_Uebersicht.date_pres_hlt
FROM tbl_Uebersicht
WHERE (((tbl_Uebersicht.[Service D'attache])<>24 And (tbl_Uebersicht.[Service D'attache])<>31 And (tbl_Uebersicht.[Service D'attache])<>26 And (tbl_Uebersicht.[Service D'attache])<>32) AND ((tbl_Uebersicht.Reseau_conduite)=6 Or (tbl_Uebersicht.Reseau_conduite)=8 Or (tbl_Uebersicht.Reseau_conduite)=10 Or (tbl_Uebersicht.Reseau_conduite)=11));

Wie gesagt wenn jetzt die Einträge hlt1 bis hlt6 alle WAHR sind, dann müsste der Kunde aus der Abfrage verschwinden, bzw nachher im Listenfild des Formulars nicht mehr erscheinen.

Mfg
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MzKlMu am Juli 01, 2014, 11:34:53
Hallo,
wenn das 6 Aufzählungsfelder (hlt1 bis hlt6) sind, wäre das Datenmodell erst recht zu ändern. Hier solltest Du ansetzen. Es wäre ganz sicher der bessere Weg.
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MaggieMay am Juli 01, 2014, 11:40:18
Hi,
ZitatWie gesagt wenn jetzt die Einträge hlt1 bis hlt6 alle WAHR sind
unabhängig vom Datenmodell, was hält dich davon ab, den Bedingungsteil entsprechend zu erweitern?
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juli 01, 2014, 14:15:12
Hallo, wie gesagt mit dem Datenmodell das hat andere Gründe und ist wie gesagt nicht ganz glücklich, aber ich muss es leider mit diesem Datenmodell lösen. Die Erweiterung fällt mir aus dem Grunde schwer weil ich in SQL nicht gerade so der Profi bin, müsste ich denn hinter den bisherigen Code schreiben und einfach weiterfahren, oder kann ich eine neue WHERE Zeile aufsetzen
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MaggieMay am Juli 01, 2014, 16:30:36
Du musst die vorhandene Where-Zeile erweitern. Wie das gehen könnte, sollte sich anhand des bisherigen Codes herleiten lassen.
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juli 01, 2014, 22:54:34
Ich hatte die Zeile ergänzt indem ich dann folgendes hinzuschrieb: (kuck jetzt nicht auf die Kommas, die stehen jetzt sicher falsch)
AND ((tbl_Uebersicht.hlt1)=true and (tbl_Uebersicht.hlt2a)=true and (tbl_Uebersicht.hlt2b)=true     usw.
Das Problem aber ist, wenn ich dies so hinschreiben, dann reicht es aus, wenn bereits 1 Kontrollkästchen angeklickt ist, damit der Kunde verschwindet. Die Bedingung aber ist, es müssen alle 6 auf True stehen erst dann verschwindet der Kunde aus der Abfrage, da häng ich fest.
Danke
Mfg
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MaggieMay am Juli 01, 2014, 23:11:07
Sorry, aber du musst schon den vollständigen SQL-Code zeigen, damit man dir sagen kann wo der Fehler liegt.

Möglicherweise hast du den Code einfach "irgendwo" oder am Ende hinzugefügt, ohne die Logik der Verknüpfungen via AND und OR zu hinterfragen oder gar zu verstehen?
Dann empfehle ich dir einen Grundkurs in Mathematik mit Schwerpunkt auf dem Teilgebiet "Logik".
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juli 01, 2014, 23:15:17
Ich konnte das Problem anders lösen, was aber nicht der Sinn der Sache ist, ich möchte es schon per SQL lösen, meine Lösung war diese: Hab in der Tabelle eine berechnete Spalte gemacht mit Hlt1 Hlt2a Hlt2b Hlt4 Hlt6 FP. So wenn nun in der berechneten Spalt -6 rauskam, heisst das ja, alle Felder sind angehakt (also diese 6 Stück). Dann konnte ich in der Abfrage ganz einfach fragen : where HLT_Berechnet = -6.
Aber wie gesagt das geht, weiss aber dass es auch per SQL gehen muss irgendwie, ich schreibe dir morgen den ganzen Code raus, wenn ich am Rechner sitze.
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MaggieMay am Juli 01, 2014, 23:23:36
Zitat von: wuffwuff2003 am Juli 01, 2014, 23:15:17Hab in der Tabelle eine berechnete Spalte gemacht
das kannst du auch ebensogut bzw. besser mit einer Abfraege lösen.
Zitatwenn nun in der berechneten Spalt -6 rauskam, heisst das ja, alle Felder sind angehakt
Die Idee ist gut und lässt sich sicher auch in einer Abfrage einsetzen.
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: wuffwuff2003 am Juli 01, 2014, 23:33:30
Ich habe die Spalte dann mal aus der Tabelle genommen, und folgenden Text in die Abfrage geschrieben, das funktioniert dann auch ja.:
WHERE ((([hlt1]+[hlt2]+[hlt3]+[hlt4])<>-4)); (ist jetzt ein etwas umgeändertes Beispiel). Jedenfalls zeigt er mir dann alle die Kunden an, die noch nicht alle HLT-Hefte bekommen haben. So wie es sein müsste ja.
Titel: Re: Abfrage mehrere Felder berücksichtigen
Beitrag von: MaggieMay am Juli 01, 2014, 23:48:15
ist jetzt ein etwas umgeändertes Beispielallerdings! aber du scheinst ja nun damit umgehen zu können ;-)