Neuigkeiten:

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

Mobiles Hauptmenü

Tabellen Abfrage mit Optionsfeldern

Begonnen von rumpelluder, Mai 12, 2021, 21:24:41

⏪ vorheriges - nächstes ⏩

rumpelluder

Guten Abend,

Ich habe folgendes Problem:
Ich habe in einer Tabelle eine Spalte deren Zeilen mit x gefüllt oder leer sind. Über ein Formular sollen bei ausgewählten Optionsfeld alle Zeilen ausgegeben werden die ein x enthalten, ist das Optionsfeld nicht ausgewählt, sollen alle Zeilen ausgegeben werden. Mit wenn([optionsfeld]=-1;"x";"") in der Kriteriumsfestlegung komme ich nicht weiter da die Abfrage mir zwar bei ausgewähltem Optionsfeld wie gewünscht alle Zeilen mit x ausgibt, bei nicht ausgewähltem Optionsfeld allerdings nur die Zeilen ausgibt die leer sind (kein x in der Spalte).
Vielen Dank wenn jemand helfen könnte!

DF6GL

Hallo,


Select ........ Where Tabellenfeld = Forms!MyForm!OptionsFeld  Or Forms!MyForm!OptionsFeld = 0

rumpelluder

Vielen Dank für die schnelle Antwort,

leider (hab ich von mir erwartet) komm ich mit der Syntax nicht klar. Daher versuche ich mal zu präzisieren:

Die Tabelle heißt Lieferantenaauswahl01, die Spalte hat die Überschrift Guss. Mein Code lautet jetzt (eingegeben im Ausdrucksgenerator)

Select x Where «Ausdr» [Lieferantenauswahl01]![Guss] = Formulare![Teilemerkmale]![Option6]  Or Formulare![Teilemerkmale]![Option6] = 0
Fehlermeldung: Die Unterabfrage in diesem Ausdruck hat eine fehlerhafte Syntax. Prüfen Sie die Syntax der Unterabfrage, und setzen Sie die Unterabfrage in Klammern.....


MzKlMu

Hallo,
das  «Ausdr» ist falsch. Außerdem fehlt From .... Teil (Tabelle).
Gruß Klaus

rumpelluder

okay habe es jetzt geändert in:

select x from [Lieferantenauswahl01]![Guss] where [Formulare![Teilemerkmale]![Option6] or[Formulare![Teilemerkmale]![Option6] = 0
Die Fehlermeldung bleibt die gleiche  :-\

MzKlMu

Hallo,
Du hast im Fromteil keinen Tabellennamen angegeben, sondern einen Feldnamen.
Was ist das x ?

Warum erstellst Du die Abfrage nicht erst mal im Entwurf (Ohne den Where Teil) und schaltest dann mal zur SQL Sicht um. Dann siehst Du wie das aufgebaut sein muss.

PS:
Wir bewegen uns hier im ganz einfaches Basiswissen, das man haben sollte wenn man sich mit Access beschäftigt.
Access ist eine Entwicklungsumgebung für Datenbanken und kein Anwendungsprogramm. Access muss man lernen.
Siehe hierzu:
https://www.access-tutorial.de/
Gruß Klaus

rumpelluder

Der Tipp mit dem Umschalten zur SQL Ansicht hilft zum Verständnis. Danke!

Den Code habe ich entsprechend geändert:

SELECT Lieferantenauswahl01.Guss
FROM Lieferantenauswahl01
WHERE (((Lieferantenauswahl01.Guss)=[Formulare]![Teilemerkmale]![Option6])) OR ((([Formulare]![Teilemerkmale]![Option6])=0));

Das Ergebnis ist aber das Gleiche wie bei wenn([optionsfeld]=-1;"x";"") .

Zitat von: rumpelluder am Mai 12, 2021, 21:24:41Ich habe in einer Tabelle eine Spalte deren Zeilen mit x gefüllt oder leer sind. Über ein Formular sollen bei ausgewählten Optionsfeld alle Zeilen ausgegeben werden die ein x enthalten, ist das Optionsfeld nicht ausgewählt, sollen alle Zeilen ausgegeben werden. Mit wenn([optionsfeld]=-1;"x";"") in der Kriteriumsfestlegung komme ich nicht weiter da die Abfrage mir zwar bei ausgewähltem Optionsfeld wie gewünscht alle Zeilen mit x ausgibt, bei nicht ausgewähltem Optionsfeld allerdings nur die Zeilen ausgibt die leer sind (kein x in der Spalte)

Ich weiß dass die Basiswissen ist. Sollte ich damit hier falsch sein, bitte ich um ein kurzes Zeichen. Dankeschön.

DF6GL

Hallo,


welchen Datentyp hat "Guss" ?

ist das Form "Teilemerkmale"   geöffnet?

ist "Optionen6" ein alleinstehendes Optionsfeld oder ist das in einen Optionsrahmen eingebunden?




Ansonsten: lad die DB hier hoch....  datenreduziert, komprimiert/repariert (Access-Ribbon-Punkt)  und gezippt.

rumpelluder

Hallo,

Ihr habt mir beide geholfen!!! Danke dafür! MzKlMu mit der Methode "Ich helfe Dir, Dir selbst zu helfen :-)
Form Teilemerkmale ist geöffnet und "Option6" ist alleinstehend.

Hab es jetzt gelöst mit

SELECT Lieferantenauswahl01.Guss
FROM Lieferantenauswahl01
WHERE (((Lieferantenauswahl01.Guss)="x") AND (([Formulare]![Teilemerkmale]![Option6])<>False)) OR ((([Formulare]![Teilemerkmale]![Option6])=0));

Ich wünsch Euch noch einen schönen Feiertag (auch wenn es regnet)!

MzKlMu

Hallo,
ZitatSollte ich damit hier falsch sein, ....
natürlich bist Du hier nicht falsch. Du kriegst ja auch geholfen. Mein Hinweis sollte nur Ansporn sein, dich mit den Grundlagen zu beschäftigen. Ohne geht es nun mal nicht.
Gruß Klaus

rumpelluder