7.4k Aufrufe
Gefragt in Windows 7 von mamamia Mitglied (348 Punkte)
Hallo,

ich habe folgendes Problem:

Daten:
Auftr.Nr. Pos. Ort Datum Preis1 Preis2
111 100 07 01.03.2012 4,25
111 200 07 01.03.2012 4,00
111 100 07 01.03.2012 4,25
111 200 07 01.03.2012 4,00
112 100 07 02.03.2012 5,25
112 200 07 02.03.2012 5,00
113 100 07 29.02.2012 4,75
113 200 07 29.02.2012 5,00
114 100 06 01.03.2012 6,25
115 100 07 01.03.2012 4,25
115 200 07 01.03.2012 4,25
118 100 07 01.03.2012 6,25
118 200 07 01.03.2012 2,25
111 100 07 01.03.2012 4,25
111 200 07 01.03.2012 4,00
118 100 07 01.03.2012 6,25
118 200 07 01.03.2012 2,25

Nun muss ich folgende Abfrage mit Access 2007 erstellen:

Ort ="07"; Datum " >29.02.2012" Preis1 ">4,00" Preis2 ">5,00"
Nun ist mein Problem, wenn eine Position die Bedingung erfüllt,
muss auch die 2. Position angezeigt werden (Pos. 100 und 200 gehören immer zusammen) und die Positionen werden öfter angezeigt, sie sollten bei der Abfrage nur 1 x erscheinen.
Gibt es eine Lösung in Access 2007?

Viele Grüße

MamaMia

31 Antworten

0 Punkte
Beantwortet von
Also so ganzversteh ich das nicht, da in Preis2 keine Daten sind dürfte dein Abfragebeispiel kein Ergebnis liefern, vielleicht erklärst du mal genauer, was die Abfrage bezwecken soll.
0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Entschuldigung, da hat es etwas verschoben, ich habe jetzt in Preis1 die leeren Zellen mit 0,00 ergänzt, dann bleibt der Betrag in Preis2.
1. Zeile zur Erklärung
111 = Auftrag-Nr.
100 = Position
07 = Ort usw.
Ich benötige alle Auftragsnummern mit Position
die Preis1 größer 4.00 oder
Preis2 größer 5.00 sind
und wenn nur eine Position die Bedingung erfüllt, muss die 2. Position nachgezogen werden, obwohl die Kriterien nicht erfüllt sind.
Beispiel:
111 100 07 01.03.2012 4,25 Kriterien erfüllt
111 200 07 01.03.2012 4,00 Kriterien nicht erfüllt
beide Positionen müssen erscheinen,

120 100 07 02.03.2012 000 5,25 Kriterien erfüllt
120 200 07 02.03.2012 000 5,25 Kriterien erfüllt
beide Positionen müssen erscheinen,

119 100 07 02.03.2012 000 2,25 Kriterien nicht erfüllt
119 200 07 02.03.2012 000 2,25 Kriterien nicht erfüllt
diese Positionen dürfen nich erscheinen


Auftr.Nr. Pos. Ort Datum Preis1 Preis2
111 100 07 01.03.2012 4,25
111 200 07 01.03.2012 4,00
111 100 07 01.03.2012 4,25
111 200 07 01.03.2012 4,00
112 100 07 02.03.2012 0,00 5,25
112 200 07 02.03.2012 0,00 5,00
113 100 07 29.02.2012 4,75
113 200 07 29.02.2012 5,00
114 100 06 01.03.2012 0,00 6,25
115 100 07 01.03.2012 0,00 4,25
115 200 07 01.03.2012 0,00 5,25
118 100 07 01.03.2012 6,25
118 200 07 01.03.2012 2,25
111 100 07 01.03.2012 4,25
111 200 07 01.03.2012 4,00
118 100 07 01.03.2012 6,25
118 200 07 01.03.2012 2,25
119 100 07 02.03.2012 000 2,25
119 200 07 02.03.2012 000 2,25
120 100 07 02.03.2012 000 5,25
120 200 07 02.03.2012 000 5,25
0 Punkte
Beantwortet von
OK, habs jetzt gecheckt !

Erstelle eine Abfrage auf der Basis deiner Tabelle und füge die Felder hinzu die angezeigt werden sollen. Bei Preis1 gibst du dann das Kriterium für dieses Feld ein, also >4,00. Unter Kriterium ist das Feld "oder", hier die rechte Maustaste und "aufbauen" wählen, es öffnet sich der Ausdrucksgenerator. . Wähle aus der linken unteren Spalte unter Tabellen deine Tabelle, im der Mitte dann das Feld Preis2 und ergänze dann im oberen Feld den Ausdruck um das Kriterium für Feld 2, also >5,00. Mit ok im Ausdrucksgenerator bestätigen und die Änderungen in der Abfrage speichern. Sollte wie gewünscht funktionieren.
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

Preis 1 >4 oder Preis 2 >5 macht es erforderlich ein zusätzliches Feld in die Abfrage mit einer Wenn Oder Formel einzufügen, das geht gerade noch in Access.

Um das Access die darauffolgende Zeile mit Position 200 abfragen kann, sollte ein Kriterium geschaffen werden (Analyse mit Excel, Zeitaufwand ca. 1 Minute)

Gruß

Paul1
0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Hallo ch55,
so weit war ich mit meiner Abfrage, aber mir fehlt die die 2. Position, wenn eine Position ein Kriterium erfüllt, (siehe mein 1. Beispiel) .


Viele Grüße
MamaMia
0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Hallo Paul1,

in Access 2003 konnte ich die Position gruppieren und als Kriterium 100 oder 200 eingeben und es funktionierte wunderbar.
Leider kann ich in 2007 diese Funktion nicht mehr finden.
Kannst Du mir bitte das Kriterium (Analyse mit Excel) genauer erklären? Muss ich da eine Ecxelformel in Position als Kriterum eingeben?

Viele Grüße
MamaMia
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo MamaMia,

Gruppieren ist nicht das Problem, egal ob 2003 oder 2007, ich würde vorschlagen schau Dir einmal meine Beispieldatei an, da kannst Du alles nachvollziehen und anschließend kannst Du mir gezielt die Fragen stellen.

Positionen filtern

Entscheidend war eigentlich nur, dass ein einziges Kriterium "x" in letzter Spalte der Abfrage mit Access allein nicht zu schaffen war, daher die Analyse mit Excel.


Gruß

Paul1
0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Hallo Paul,

vielen Dank für die Beispieldatei. Ich wollte sie nachvollziehen, aber
bei der "wenn oder Formel" mit ok oder nicht ok erhalte ich immer folgenden Fehler:
# Fehler
Das muss am Format liegen. Ich habe nun die Zahlen als Zahl, Standard und Text formatiert, aber es erscheint immer dieser Fehler.
Ich probiere es morgen im Büro mit der Originaldatei, vielleicht klappt es da.

Viele Grüße
MamaMia
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo MamaMia,

Nach Deiner Schilderung hast Du die Formel in Excel getestet, die Formel "OK" oder "nicht OK" befindet sich noch in Access.
zu finden:
>Abfrage vor Analyse Entwurfsansicht
>Spalte Wenn Oder
>Rechtsklick
>Aufbauen
>hier ist die Formel zu sehen (das Feld kannst Du auseinanderziehen)

Die Formel in Access:
WennOder: Wenn([Preis1]>4 Oder [Preis2]>5;"OK";"nicht OK")

Denn in Abfrage nach Analyse ist die Formel nicht mehr zu sehen, da in Excel die Formel nicht mehr aufscheint, ist aber auch logischer Weise nicht notwendig.

Die Formel für "x" wurde in Excel erstellt in der Spalte "Position 200"
ab Zeile 3 und wurde runterkopiert.

Die Formel in Excel:
=WENN(UND(G2="OK";B3=200);"x";"")

Hoffe, dass hilft etwas.

Bei Fragen schreibe es!

Gruß

Paul1
0 Punkte
Beantwortet von
Moim Mamamia,

kann ich jetzt nicht ganz nachvollziehen, denn ich habe eine Tabelle erstellt, getestet und erhielt das gewünschte Ergebnis. Werde das im Laiufe des Tages mochmal wiederholen und das Ergebnis posten. Behaupte aber mal ganz kühn, das das in Access lösbar ist ohne noch Excel einzubeziehen:

So long
...