Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ThomasR am Oktober 17, 2024, 12:36:28

Titel: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Oktober 17, 2024, 12:36:28
Hallo Zusammen

Ich möchte in einer Abfrage ein Kriterim entsprechend eines Optionsfeld-Wert setzten.

Das Feld Satzvideo wenn Optionsgruppen-Wert 2, dann nur Felder mit Inhalt.
Wenn, 1 oder 3 dann alle DS auch die Leeren!
Es handelt sich um ein Textdatentyp.

Wie Wenn([Formulare]![frmTrainer]![RahmenWoSoWuS]=2;"*";??????)

Danke, Thomas
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: Knobbi38 am Oktober 17, 2024, 13:13:32
ergänze dein Kriterium um:
.. OR RahmenWoSoWuS<>2

Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Oktober 17, 2024, 14:03:03
Hallo Knobbi
Danke für die rasche Antwort.

WEnn ich dich richtig verstehe etwa so:
Wie Wenn([Formulare]![frmTrainer]![RahmenWoSoWuS]=2;"*") Oder Wie Wenn([Formulare]![frmTrainer]![RahmenWoSoWuS]<>2)
Das nimmt er/sie nicht.

Der True-Teil wird er brauchen.

Hier stehe ich an! Was ist hier richtig, dass er alles anzeigt inkl leeren DS?
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: Knobbi38 am Oktober 17, 2024, 14:32:03
Anstatt das in der QBE zu erfassen, ändere deine SQL-Anweisung in der SQL-Ansicht - das ist viel einfacher. Das Wenn ist sowieso komplett überflüssig.

Wenn du damit nicht klar kommst, lade deine SQL-Anweisung mal hier hoch.
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Oktober 17, 2024, 14:51:09
Also das ist die SQL Ansicht der Abfrage qryTrainer4:

SELECT ID
,[RND]
,Wort
,Umschreibung
,DEFINITION
,STATUS
,Kategorie
,Stufe
,Einheit
,Untereinheit
,Wortvideo
,Satzvideo
,Satztext
,Merkliste1
,Merkliste2
,Merkliste3
,Merkliste4
,Merkliste5
,Sprache
FROM qryTrainer4
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: MzKlMu am Oktober 17, 2024, 15:04:45
Hallo,
ZitatDas Feld Satzvideo wenn Optionsgruppen-Wert 2, dann nur Felder mit Inhalt.
Was heist Felder mit Inhalt ?
Welches Feld soll da auf Inhalt geprüft werden ?
Wenn alle Felder leer sind, ist das ja kein Datensatz.

Bitte mal genauer erklären.

Bitte SQL Code lesbar formatieren. Ich habe das oben mal geändert.

PS:
Die 5 Aufzählungsfelder (Merkliste1 ... Merkliste5) deuten auf ein falsches Datenmodell hin. Solche Felder sind in einer Datenbank zu vermeiden. Hier fehlt noch eine Tabelle (Merkliste) in der die Daten als je ein Datensatz erfasst werden.
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Oktober 17, 2024, 15:26:30
Hallo Klaus
In der Abfrage QryTrainer5 sollen die Felder Wortvideo und Satzvideo in Abhängigkeit vom Optionsgruppenwert "abgefragt" (ist das das richtige Wort? Kriterium) werden. Option 1 Wortvideo ohne leere Felder, Option 2 Satzvideo ohne leere Felder und Option 3 kein Kriterium in Wort-/ und Satzvideo.

Leer im Sinne, es sind Textfelder und nicht jeder DS hat in beiden Felder einen Eintrag (zb. "Brot.mp4") aber einer ist immer vorhanden.

zu deinem Hinweis, in den Merklisten sind zu jedem DS ein ja/nein Feld und es ist so möglich mehrer Merklisten zu haben. Ist das Falsch?
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: Beaker s.a. am Oktober 17, 2024, 16:39:18
Ja, du kannst ja nur 5 Merklisten haben, - mit einer extra Tabelle tausende.
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: Knobbi38 am Oktober 17, 2024, 18:10:33
Hallo Thomas,

das mit deinen leeren Felder verstehe ich nicht. Bei leeren Felder wird sowieso nichts angezeigt - so wäre es nicht leer! Wie schon gesagt, ist die Tabelle nicht normalisiert und die Felder Merkliste(n) gehören in eine separate Tabelle. Bei den beiden Feldern Wortvideo und Satzvideo bin ich mir nicht ganz sicher, aber ich glaube das ist auch nicht richtig normalisiert.

Was die Kriterien betrifft, könnte das so aussehen:
Select *
From qryTrainer4
Where  (Opt = 1 and WortVideo not null)
    or (Opt = 2 and SatzVideo not Null)
    or (Opt = 3)

Wieso eigentlich von 'qryTrainer4' ?
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Oktober 22, 2024, 21:34:02
Danke euch! Gab mir einiges zum Nachdenken.

Das mit den Merklisten macht Sinn. Jetzt gibt es 5 Tabellen (Merklisten 1-5). Die sollen in eine Tabelle tblMerklsite mit den Feldnamen Merkliste1 bis Merklsitex damit das Datenmodell stimmt. Habe ich das richtig verstanden?

Das mit den "Leeren" Feldern, da habe ich mich total verrannt. Ich bin immer noch im Excel-Denken gefangen.
Ich bringe es nicht auf die Reihe wie man die Abfrage macht 

Select *
From qryTrainer4
Where  (((qryTrainer.Wortvideo) Like IIf([Formulare]![frmTrainer]![OptWuS]=1,"*")));

und wenn OptWuS <> 1 , dann soll es sein als ob keine Wehre steht, sprich alles anzeigen. (Das meinete ich mit "auch leere Felder"  ::) sorry.

Zu Wieso qryTrainer4; ich mache zum Testen eine Abfrage aus einer Abfrage und setzte dort die Kritierien mit Hilfe des Ausdrucksgenerators. Wenns dann funktioniert bau ich den SQL in der qryTrainer ein. Denke der eine oder ander kann jetzt laut lachen aber anderst pack ich's nicht. SQL ist für mich...
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: Knobbi38 am Oktober 22, 2024, 23:58:29
Hallo Thomas,
Zitat von: ThomasR am Oktober 22, 2024, 21:34:02Das mit den Merklisten macht Sinn. Jetzt gibt es 5 Tabellen (Merklisten 1-5). Die sollen in eine Tabelle tblMerklsite mit den Feldnamen Merkliste1 bis Merklsitex damit das Datenmodell stimmt. Habe ich das richtig verstanden?
Nein, es gibt nur eine Tabelle tblMerkmal mit eine AutoKey als PrimaryKey, ein Feld mit einem Fremdshlüssel auf den "Parent"-Datensatz in der Basistabelle und einem Merkfeld. Bei 5 Merkmalen hast du dann 5 Datensätze mit dem gleichen Fremdschlüssel und je einem der 5 Merkmale.

Schau dir bitte das nochmal im Tutorial an: https://www.access-tutorial.de/tabellen/ (https://www.access-tutorial.de/tabellen/)

Auch mußt du dich nochmal mit "leeren" Feldern beschäftigen, die bei Tabellen immer eine NULL enthalten sollten. Dann gibt es mit dem Select auch kein Probleme mehr. Das Konstrukt mit IIF und LIKE ist hier vollkommen fehl am Platze.

Schieb' doch einfach mal ein Beispieldatenbank hier hoch?

Gruß
Ulrich


Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: MzKlMu am Oktober 23, 2024, 00:34:53
Hallo,
erkläre mal was die Merklisten genau sind.
Es könnte sein, dass hier eine n:m Beziehung vorliegt. Dann würde noch eine Zwischentabelle benötigt.

Zitat von: Ulrich... "leeren" Feldern beschäftigen, die bei Tabellen immer eine NULL enthalten sollten.
Das hat Ulrich etwas missverständlich ausgedrückt.
Nicht die Zahl 0, sondern das Feld ist leer (NULL), bei Access spricht man da von NULL.

Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Dezember 02, 2024, 16:19:48
Gerne, die DB ist eine Sammlung von Gebärdenvideos. Zum Üben kann man in mehreren Listen (Merklisten) Glossen oder Sätze die man wiederholen möchte abspeichern und wieder aufrufen. So eine Merklistentabelle enthält den ID Autowert aus dem Lexikon und ein Feld mit Ja/Nein Wert.
Da könnte man jetzt alle Merklistentabellen in eine Tabelle zusammenführen, so habe ich das verstanden.
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: ThomasR am Dezember 02, 2024, 16:22:35
Zum Thema NULL Feld leer usw. habe ich noch eine Frage. Ist es möglich, dass weil ich die Datenaufbereitung für den Inport nach Access in Excel gemacht habe die Felder die Leer sind nicht NULL waren?
Titel: Re: Kriterien in Abfrage mit "Leeren" DS
Beitrag von: Beaker s.a. am Dezember 02, 2024, 17:11:55
Hallo Thomas,

Ja, in Excel gibt es kein NULL. Wenn du da auf eine leeres Feld
referenzierst bekommst du eine 0 zurück.
Access ist das aber egal, beim Import werden leere Felder mit NULL
eingelesen.

gruss ekkehard