Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: km66 am Dezember 27, 2022, 17:11:01

Titel: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: km66 am Dezember 27, 2022, 17:11:01
Hallo zusammen,
vielleicht kann mir jemand helfen (google konnte es nicht).
Ich möchte Daten aus einer Tabelle (tblWettkampf) mit Hilfe eines Listenfelds auswählen.
In dem Listenfeld stehen Jahreszahlen als Auswahlkriterium.
Das gelingt auch, wenn ich die Jahreszahlen in dem Listenfeld per Werteliste explizit vorgebe.
Ich möchte aber, dass in dem Listenfeld automatisch alle Jahreszahlen auftauchen, die in der Tabelle auftreten  (tblWettkampf.wet_saison).
Leider bin ich zu blöd. Wenn es mehrere Einträge mit derselben Jahreszahl in der Tabelle gibt, taucht die Jahreszahl auch mehrfach im Listenfeld auf.
Google meint, DISTINCT würde helfen. Tut es leider nicht.

SELECT DISTINCT tblWettkampf.wet_id, tblWettkampf.wet_saison
FROM tblWettkampf
ORDER BY tblWettkampf.[wet_saison];

Was mache ich falsch?
Gruß, Klaus
 
 

Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: markusxy am Dezember 27, 2022, 17:24:04
Zitat von: km66 am Dezember 27, 2022, 17:11:01Was mache ich falsch?

DISTINCT bewirkt, dass jede Kombination aus den ausgewählten Feldern nur einmalig vorkommt.

Du musst also die erste Spalte weglassen.

Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: km66 am Dezember 27, 2022, 17:30:36
Du meinst?
SELECT DISTINCT tblWettkampf.wet_saison
FROM tblWettkampf
ORDER BY tblWettkampf.[wet_saison];

Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: MzKlMu am Dezember 27, 2022, 17:47:18
Hallo,
ZitatDu meinst?
Man könnte auf die Idee kommen, es zu probieren.

PS:
Bitte unterlasse das Zitieren vollständiger Beiträge.
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: km66 am Dezember 27, 2022, 18:36:13
Danke markusxy,
mit

SELECT DISTINCT tblWettkampf.wet_saison
FROM tblWettkampf
ORDER BY tblWettkampf.wet_saison;

liefert der Abfrage-Generator folgendes (also genau das, was ich gerne hätte).

wet_saison
2016
2017
2018
2019
2020
2021
2022
2023


Nur ist das Listenfeld leider komplett ohne Einträge.

Wenn ich DISTINCT weglasse, liefert der Abfrage-Generator eine Tabelle, in der die Jahreszahlane merfach auftauchen (das will ich nicht).
Das Listenfeld ist aber auch in diesem Fall leer.

Mit
SELECT tblWettkampf.wet_id, tblWettkampf.wet_saison
FROM tblWettkampf
ORDER BY tblWettkampf.wet_saison;
liefert der Generator:

wet_id    wet_saison
575    2016
588    2016
...
398    2017
402    2017
...
275    2018
274    2018
...
169    2019
164    2019
...
475    2020
470    2020
...
486    2021
490    2021
...
518    2022
531    2022
...
614    2023
613    2023


Die Jahreszahlen tauchen im Listenfeld auf (aber leider mehrfach).

Und schließlich:
Mit
SELECT DISTINCT tblWettkampf.wet_id, tblWettkampf.wet_saison
FROM tblWettkampf
ORDER BY tblWettkampf.wet_saison;
passiert dasselbe wie zuvor.
 :(

Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: MzKlMu am Dezember 27, 2022, 19:10:55
Hallo,
du hast das Listenfeld falsch eingestellt. Die erste Spalte steht auf 0cm und ist somit unsichtbar.
Mache das mal wie folgt:

Datenherkunft diese Abfrage:
SELECT DISTINCT wet_saison FROM tblWettkampf ORDER BY wet_saisonSpaltenzahl: 1
Spaltenbreite: 1,5cm (bitte anpassen)
Gebundene Spalte: 1
Im SQL-Abfragetext für das Listenfeld sind die Tabellennamen vor den Feldnamen überflüssig.
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: km66 am Dezember 28, 2022, 09:55:58
Danke, Klaus.
Es funktioniert wie gewollt.
Auf die Geschichte mit der standardmäßig versteckten Spalte wäre ich alleine nie gekommen (fällt m.E. unter das Heimtücke-Gesetz).
Gelernt habe ich:
Wenn das Ergebnis einer Abfrage laut Generator in Ordnung ist und in den Steuerelementen trotzdem nichts Vernünftiges angezeigt wird, dann liegt es an dessen Einstellungen.
Danke + Gruß,
Klaus
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: MzKlMu am Dezember 28, 2022, 11:14:43
Hallo,
Zitatfällt m.E. unter das Heimtücke-Gesetz
eher nicht.
Die normale Anwendung eines Kombifeldes ist die Auswahl eines Wertes aus einer Nachschlagetabelle. Gespeichert wird aber die ID der Nachschlagetabelle und das ist im Regelfall Spalte 1. Da die ID aber meist bedeutungslos ist sondern der Klartext wird die ID ausgeblendet. Wenn Du das Kombi mit dem Assi anlegst wirst Du aktiv gefragt, ob die ID (Schlüsselspalte) ausgeblendet werden soll. Den Haken dazu hast du gelassen (Siehe Bild), daher steht die 1.Spalte auf 0cm.
Bei Access sollte man halt immer wissen was man tut, da geht nichts intuitiv.
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: km66 am Dezember 29, 2022, 08:40:39
ZitatBei Access sollte man halt immer wissen was man tut, da geht nichts intuitiv.

Danke, Klaus.
Das ist wohl wahr.

Das mit der versteckten Spalte ist mir auch schon mal begegnet (ich hangle mich an einer Beispiel-DB aus dem Access-Buch von A. Stern entlang).
Ich dachte nur, die Null-Spalte wäre vom Autor bewusst angelegt worden und nicht vom Assistenten eingerichtet.

Die netten Hinweise des Assistenten kann man (ich) halt nur verstehen, wenn man weiß, wovon die Rede ist (ich werde künftig genauer hinterfragen, welche Konsequenzen das Setzen eines Häkchens hat). 
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: Beaker s.a. am Dezember 29, 2022, 13:27:41
Hallo,
ZitatDie netten Hinweise des Assistenten kann man (ich) halt nur verstehen, wenn man weiß, wovon die Rede ist (ich werde künftig genauer hinterfragen, welche Konsequenzen das Setzen eines Häkchens hat).
Dann schau dir in der OH doch einfach mal die Eigenschaften von Kombi-/Listenfeldern
an. Die wichtigsten findest du im Eigenschaftenblatt auf den ersten beiden Tabs.
Danach brauchst du den Assi nicht mehr.

gruss ekkehard
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: km66 am Dezember 30, 2022, 05:55:41
ZitatDann schau dir in der OH doch einfach mal die Eigenschaften von Kombi-/Listenfeldern
an.

OH?
???
Titel: Re: Jahreszahlen aus Abfrage in Listenfeld
Beitrag von: MzKlMu am Dezember 30, 2022, 09:15:28
Hallo,
OH = Onlinehilfe.
Cursor in die Eigenschaftszeile stellen und F1 drücken.