Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung
Berichtswesen im SAP®-Controlling (📖)

Für 19,95 € direkt bestellen

Oder bei Amazon ** Oder bei Autorenwelt



Dienstag, 15. März 2016
17:59 Uhr

Aktualisierungsabfrage in Access mit WENN (sowohl A als auch B) DANN Funktion

Eigentlich versuche ich soweit es irgendwie geht Daten aus SAP so aufzubereiten, dass eine Nachbearbeitung in nachgelagerten Systemen (im Beispiel Tabellenkalkulation oder Datenbanken) nicht mehr erforderlich ist. Dennoch gibt es hin und wieder Fälle, wo eine entsprechende Bearbeitung zum Beispiel in Access notwendig ist, da noch nicht an alle Auswertungen gedacht wurde oder man eine weitere Information aus den vorhandenen Daten auslesen möchte...

Während ich in Excel keine Probleme habe Wenn-Dann Funktionen mit Verschachtelungen zu versehen fällt mir dieses in Access etwas schwerer, da der Syntax ein klein wenig abweicht und statt Zellbezüge hier Bezüge auf einzelne Tabellenfelder genommen werden muss und auch der Syntax von Formeln etwas von Excel abweicht, was im zweiten Lösungsweg zu sehen ist. Vermutlich ist meine Vorliebe für Excel einer der Gründe warum ich mich lieber mit Tools zur Erstellung einer MindMap (siehe "Mindmapping und Sketchnotes im Beruf nutzen für Brainstorming oder Mind Mapping mit XMIND") als intensiver mit Access beschäftige, auch wenn es hin und wieder durchaus praktisch ist.

Ausgangslage
Im Rahmen einer Aktualisierungsabfrage auf einzelne Tabellen soll das Feld "QoS" in der Tabelle "Ergebnistabelle" anhand folgender Fälle aktualisiert werden beziehungsweise einen Wert erhalten.
  • Sind die letzten 2 Ziffern des Innenauftrag kleiner oder gleich 49 dann soll als Wert "S" zurückgegeben werden.
  • Handelt es sich bei den letzten 2 Ziffern des Innenauftrag um größer oder gleich 50 dann soll als Wert "Q" zurückgegeben werden.
  • Sofern die dritte Stelle des Innenauftrag eine 4 enthält ist in jeden Fall als Wert "Q" auszugeben.
In der Tabelle "Ergebnistabelle" ist der Innenauftrag in unseren Beispiel im Feld "Projekt" abgespeichert.

Im Rahmen der Aktualisierungsabfrage wird nun also für das Feld "QoS"  der Tabelle "Ergebnistabelle" im Feld Aktualisieren folgende Formel eingegeben.

Am Einfachsten ist dieses, wenn über die rechte Maustaste die Option "Aufbauen" gewählt wird. Hierdurch erscheint der Ausdrucksgenerator und wir bekommen sämtliche Felder der Datenbank aber auch alle möglichen Ausdrücke zur Auswahl angezeigt. Für unseren Fall arbeiten wir aber mit den Ausdrücken WENN, LINKS und RECHTS. Wobei ich hier zwei Lösungsansätze habe.

Verschachtele WENN dann WENN Funktion

Nachdem wir den Ausdrucksgeneartor aufgerufen haben erhalten wir ein Fenster in dem die folgende Formel eingetragen werden kann:

Wenn
(
 Rechts(Links([Ergebnistabelle]![Projekt];3);1)*1=4;
 "Q";
 Wenn
   (
    Rechts([Ergebnistabelle]![Projekt];2)*1<50;"S";"Q"
   )
)

Zur Erklärung:
Im ersten Abschnitt wird überprüft, ob bei der Innenauftragsnummer an vierter Stelle eine 4 steht. In diesen Fall handelt es sich in jeden Fall um "Q", andernfalls (DANN) wird nun nicht ein Wert ausgegeben sondern eine weitere Wenn Dann Funktion geprüft. Wenn die letzten beiden Ziffern kleiner als 50 sind handelt es sich um "S" ansonsten trifft tatsächlcih "Q" zu.

Da die Funktionen LINKS und RECHTS eigentlich für Varianten eines Strings gedacht sind (Textbestandteile auslesen) habe ich mit * 1 in der Formel diese zur Sicherheit auch als Zahl behandelt. Da die Innenauftragsnummer aber auf jeden Fall eine Zahl sein sollte, kann dieser Part auch ausgelassen werden.

Im Ergebnis haben wir nun abhängig von der Innenauftragsnummer entweder S oder Q im Feld "QoS" stehen.

WENN ( SOWOHL ... ALS AUCH ... ) dann Funktion

Eine bessere Variante ist in folgender Abbildung dargestellt, an der auch der abweichende Syntax zu Excel ersichtlich ist.

Access Ausdrucks-Generatur mit Wenn Funktion

Während ich in Excel mit WENN(UND();"S";"Q") gearbeitet habe ist der Syntax bei Verschachtelungen mit WENN  und UND in Access etwas anders. Für unser Fallbeispiel würde die Aktualisierung wie folgt definiert werden:

Wenn
(
  Rechts([Ergebnistabelle]![Projekt];2)<=49
   UND
  Rechts(Links([Ergebnistabelle]![Projekt];3);1)<>4;
 "S";"Q"
)

Zur Erklärung:
Sofern die letzten beiden Ziffern des Innenauftrags < oder = 49 sind UND die dritte Stelle keine 4 ist, wird das Feld "QoS" mit den Wert "S" versehen, andernfalls mit "Q".

Diese Schreibweise ist natürlich wesentlich einfacher, allerdings muss man sich vom Syntax der Klammer bei UND () lösen, wie dieses in Excel erfolgen würde.

In beiden Varianten hat nun das Feld "QoS" abhängig von der Innenauftragsnummer im Feld Projekt eine entsprechende Werztuweisung und es können hier weitere Gruppierungen oder sonstige Auswertungen vorgenommen werden.

Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
SAP Weiterbildung
ein Angebot von Espresso Tutorials
SAP Weiterbildung - so wirksam wie eine gute Tasse Espresso

unkelbach.link/et.books/

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/



Tags: Access

2 Kommentare - - Office

Artikel datenschutzfreundlich teilen

🌎 Facebook 🌎 Twitter 🌎 LinkedIn


Diesen Artikel zitieren:
Unkelbach, Andreas: »Aktualisierungsabfrage in Access mit WENN (sowohl A als auch B) DANN Funktion« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 15.3.2016, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=693 (Abgerufen am 23.11.2024)

Diesen und weitere Texte von finden Sie auf http://www.andreas-unkelbach.de


Kommentare

Anonym am 31.10.2018 um 13:08 Uhr
Danke!


Anonym am 2.3.2020 um 13:50 Uhr
Sehr hilfreich!


Auch kommentieren?


Beim Versenden eines Kommentars wird mir ihre IP mitgeteilt. Diese wird jedoch nicht dauerhaft gespeichert; die angegebene E-Mail wird nicht veröffentlicht: beim Versenden als "Normaler Kommentar" ist die Angabe eines Namen erforderlich, gerne kann hier auch ein Pseudonyme oder anonyme Angaben gemacht werden (siehe auch Kommentare und Beiträge in der Datenschutzerklärung).

Eine Rückmeldung ist entweder per Schnellkommentar oder (weiter unten) als normalen Kommentar möglich. Eine persönliche Rückmeldung (gerne auch Fragen zum Thema) würde mich sehr freuen.

Schnellkommentar (Kurzes Feedback, ausführliche Kommentare bitte unten als normaler Kommentar)





Ich nutze zum Schutz vor Spam-Kommentaren (reine Werbeeinträge) eine Wortliste, so dass diese Kommentare nicht veröffentlicht werden. Sollte ihr Kommentar nicht direkt veröffentlicht werden, kann dieses an einen entsprechenden Filter liegen.

Im Zweifel besteht auch immer die Möglichkeit eine Mail zu schreiben oder die sozialen Medien zu nutzen. Meine Kontaktdaten finden Sie auf »Über mich« oder unter »Kontakt«. Ansonsten antworte ich tatsächlich sehr gerne auf Kommentare und freue mich auf einen spannenden Austausch.












* Amazon Partnerlink/Affiliatelinks/Werbelinks
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Hinauf






Logo Andreas-Unkelbach.de
Andreas Unkelbach Blog
ISSN 2701-6242

© 2004 - 2024 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de

UStID-Nr: DE348450326 - Kleinunternehmer im Sinne von § 19 Abs. 1 UStG

Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter XING

Linkedin Mastodon Bluesky

Amazon Autorenwelt Librarything

Buchempfehlung
SAP S/4HANA Migration Cockpit - Datenmigration mit LTMC und LTMOM

29,95 € Amazon* Autorenwelt

Espresso Tutorials

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Privates

Kaffeekasse 📖 Wunschliste