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 paul1 Experte (4.9k Punkte)
Hallo MamaMia,

wie geht es Dir mit der Importiererei, ich bin überzeugt, dass Du das hinbekommst - Glück auf!

Vielleicht hilft das weiter:

Link

Eine Zwischenfrage hätte ich noch, wenn dann machen wir Nägel mit Köpfen.

Werden die Auftragsnummern fortlaufend erfasst, oder wild durcheinander, ich frage deswegen weil ich in die Exceldatei eine UserForm als Eingabehilfe einbauen möchte.



Gruß

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

ich bin immer noch am Probieren .................
Aber es liegt nicht an Deinen Vorgaben, sondern an meinen Formaten.

Die Nummern werden fortlaufend erfasst, aber es sind Einzelpositionen dabei (nur Position 100 oder nur Pos. 200) und die Aufträge sind teilweise doppelt vorthanden, sollten nur 1 x angezeigt werden.

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

ich habe es geschafft.
Erst habe ich meinen Rechner überfordert, ich konnte plötzlich keine Excel-Datei mehr öffnen. Dann hatte ich Formelfehler, die Positionen(100/200) sind in der Tabelle als Text hinterlegt, ich muss das natürlich in der Formel berücksichtigen.

Aber jetzt entspricht die Abfrage meinen Anforderungen, es sind auch die Einzelpositionen berücksicht und die doppelten Werte kann ich in Excel schnell entfernen.

Vielen Dank! Ich hab wieder einiges gelernt.
Bist Du noch an weiteren Verbesserungen am Experimentieren?

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

Freut mich, dass es jetzt so ist, wie Du es brauchst, das ist das Wichtigste.
In die Exceldatei habe ich noch eine UserForm eingebaut, weitere Experimente glaube ich sind nicht erforderlich.

Konzept

schönes Restwochenende

Gruß

Paul1
0 Punkte
Beantwortet von
Also hier wäre dann die Lösung ohne EXCEL, nämlich einen SQL-Code

SELECT *
FROM tabelle1
WHERE (((tabelle1.auftr_nr) In (SELECT Auftr_Nr FROM tabelle1 WHERE Preis1>=4 OR Preis2 >= 5)))
ORDER BY tabelle1.auftr_nr, tabelle1.Pos;


Der Ehre halber hier noch die Quelle, da das nicht von mir stammt. Tabellen- und Feldnamen mußt du noch entsprechend anpassen.
0 Punkte
Beantwortet von mamamia Mitglied (348 Punkte)
Hallo ch55,

vielen Dank für Deine Bemühungen, aber in SQL habe ich überhaupt keine Erfahrung,

Ich werde diesen SQL-Code noch probieren, sollte ich nicht zurechtkommen, melde ich mich nochmal.

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

Abfrage Access 2007

Hallo MamaMia,

Nach wiederholten Tests, könnte ich mir die Datenbank auch ohne Excel vorstellen, denn eine paarweise Filterung ist mit Excel auch nur eingeschränkt möglich.

Im nachfolgenden Beispiel (Abfragen: „Beispiel ohne Excel“ u. „Abfrage1 Test-richtig“) ist folgendes zu sagen:

„Beispiel ohne Excel“ ist mit herkömmlichen Kriterien in der Entwurfsansicht erstellt.

„Abfrage1 Test-richtig“ ist das gleiche wie „Beispiel ohne Excel“ nur mit einer SQL-Anweisung erstellt.

Die dazugehörige SQL-Anweisung:

SELECT *
FROM Tabelle1
WHERE (((Tabelle1.Auftragsnummer) AND ((Tabelle1.Position)=100) AND ((Tabelle1.Preis1)>4)) OR (((Tabelle1.Auftragsnummer)) AND ((Tabelle1.Position)=100) AND ((Tabelle1.Preis2)>5)) OR (((Tabelle1.Auftragsnummer)) AND ((Tabelle1.Position)=200)));

Wie das geht, folgende Links:

Link1
AW9

deswegen erkläre ich es, da es immer wieder vorkommen kann, dass Du von irgendwo eine SQL-Anweisung bekommst, die eingebaut werden soll.

Ob mit oder ohne Excel eine Schwachstelle gibt es nach wie vor, die sich glaube ich nicht vermeiden lässt, denn wie soll eine verstreute 200er Position (die keine Kriterien erfüllen muss) einer verstreuten 100er Position (welche die Kriterien erfüllt, z.B. Preis 1 >4, Preis2 >5) so zugeordnet werden, dass die Positionen in der Abfrage paarweise erscheinen, das wäre aber nur möglich, wenn sie bereits so erfasst wurden.

Es ist daher nur möglich, die Aufträge insgesamt (nicht paarweise) nach allen erforderlichen Kriterien zu Filtern, zusätzlich auch Position 100 mit Preiskriterien, Position 200 ohne Preiskriterien.

Aus allen Abfragen habe ich Formulare erstellt und mittels bedingter Formatierung ist es überprüfbar, ob die Auswertung den festgelegten Kriterien entspricht.
Doppelte Datensätze sind auch in Access löschbar

Datenbankbeispiel

Schau es Dir einmal an, vielleicht ist es so vom Handling her einfacher, ganz ausgegoren ist es wie bereits erwähnt ohnehin nicht.
Etwas Improvisation ist angesagt, aber da ist Deine Kreativität gefragt, da Du die Arbeitspraktiken am besten selber kennst.

Gruß

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

dieser SQL Code ist eine super Lösung. Es funktioniert.

Vielen Dank für Deine Bemühungen!

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

vielen Dank für Deine weiteren Bemühungen.
Die Links für die SQL-Anwendung haben mir sehr geholfen, aber mit Deiner SQL-Anweisung habe ich Probleme. Der SQL-Code von ch55 funktionierte auf Anhieb.

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

vielen Dank für Deine weiteren Bemühungen.
Die Links für die SQL-Anwendung haben mir sehr geholfen, aber mit Deiner SQL-Anweisung habe ich Probleme. Der SQL-Code von ch55 funktionierte auf Anhieb.

Viele Grüße
MamaMia
...