Neuigkeiten:

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

Mobiles Hauptmenü

Parameterabfrage mit mehreren Kriterien

Begonnen von Bulldoez, März 21, 2013, 15:39:53

⏪ vorheriges - nächstes ⏩

Bulldoez

Hallo Leute!

Wieder ich!

Ich bin immer mehr am verzweifeln, nachdem ich jetzt schon das Forum durchgesucht habe und immernoch keine Antwort habe.

In meiner Tabelle "Veranstaltungen" habe ich ein Feld namens "Status". Eine Veranstaltung kann 6 Verschiedene Statusse (oder wie auch immer :D) haben.

- nach Bedarf
- in Planung
- Aktiv
- Abgesagt
- Bestellt
- Abgerechnet

Nun möchte ich mit einer Parameterabfrage abfragen, was zB die Summe der Gesamtkosten im Status "Bestellt" sind. Das sieht dann so aus:

Status      Gesamtsumme
Bestellt         55.360,50€

Aber es kann auch sein, dass ich jeweils die Summe der Gesamtkosten von 2 oder mehreren Statussen (:D) haben möchte, also so:

Status      Gesamtsumme
Bestellt          55.360,50€
Abgesagt      36.870,00€        



Wie muss der SQL-Code für die "Kriterien" aussehen, damit ich in der Parameterabfrage eine oder mehr Statusse (:D) eingeben kann?

Vielen Dank für schnelle Hilfe!!

Gruß Dennis




bahasu

Hi,

vielleicht hilft das Beispiel im Anhang.
Gibt dort eine Abfrage, die durch Komma getrennte Parameter auswertet.

Harald

[Anhang gelöscht durch Administrator]
Servus

bahasu

Hi,

und irgendwann später könnte man dann den Status normalisiert als Zahl und nicht als Text speichern.

Harald
Servus

Bulldoez

Hei Harald!

Danke für deine Antwort! In deiner DB funktioniert das wunderbar, allerdings würde ich gerne ein wenig Hintergrundissen dazu bekommen. Kannst du mir erklären was du gemacht hast?

Und zu deinem Tipp mit der Normalisierung.. Diesen Tipp habe ich meinem Auftraggeber bereits vorgeschlagen, allerdings möchte er seine Wörter behalten und keine Zahlen haben.

Gruß Dennis

bahasu

Hi Dennis,

in der Abfrage mit dem langen Namen gibt es eine Spalte:
InStr([X];[Status])

[X] ist der übergebene Parameter (z.B. "aktiv abgesagt")
Mit InStr wird geprüft, ob [Status] als Teilmenge in [X] vorhanden ist.
Wenn dem so ist, kommt als Ergebnis eine Zahl > 0 heraus. Dann sind die Kriterien erfüllt.

Zu den Wörtern, Zahlen: gespeichert werden Zahlen, angezeigt werden Wörter. Auf der Benutzeroberfläche FORMULAR kommt man nur mit Wörtern in Kontakt.

Harald
Servus

Bulldoez

Ahhh, verstehe.

Dankeschön!

Wenn wir schon dabei sind, hab ich gleich nochmals zur derselben Abfrage nochmals eine kleine Frage.

Nachdem ich jetzt zB von den Status "Bestellt" und "Abgerechnet" die Summe erhalte, möchte ich jetzt eine Gesamtsumme bekommen.
Wenn "Bestellt" also als Summe 5200€ anzeigt und "Abgerechnet" 4800€ Möchte ich dann in der Gesamtsumme die 10000€ stehen haben. Also im Prinzip soll er von den Abgefragten Summen wieder eine Gesamtsumme bilden.

Geht das?!

Danke schonmal!

Viele Grüße
Dennis

bahasu

Hi Dennis,

die Abfrage muß nur etwas "verkleinert" werden: siehe Anhang: Abfrage3.

Harald

[Anhang gelöscht durch Administrator]
Servus

Bulldoez

Hi Harald,

okay ja, das wäre ja dann wieder eine neue Abfrage. Bekommt man das auch in derselben Abfrage hin?

Status              Wert                Gesamtsumme
Bestellt              2.500€             
Beendet            5.000€             7.500€

Ich ahne, dass das nicht geht?:(

Gruß Dennis

bahasu

Hi Dennis,

Zitat von: Bulldoez am März 22, 2013, 10:51:23
Ich ahne, dass das nicht geht?:(

Doch, ist machbar!
Mit ein paar weiteren Abfragen und einem VBA-Einzeiler.

Die Abfrage2 ruft eine public function auf (ist im Modul deklariert). Dort wird dsum aufgerufen und auf eine Abfrage0 angewendet, wobei die zuvor per Parameter übergebenen Vorgaben ausgewertet werden.

Harald

[Anhang gelöscht durch Administrator]
Servus

Bulldoez

Vielen Vielen Vielen Dank Harald! Du bist mein Held!  :D

Schönes Wochenende wünsche ich dir! :-)

Gruß Dennis