Berechnungen aus Listenfelder

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Berechnungen aus Listenfelder

Beitrag von Vanessa Sturm » Mi, 03.04.2019 16:48

Hallo Ihr alle zusammen,

Mitlerweile habe ich mich die Jahre mit eurer Hilfe im Base immer durch gewuselt. Da unsere Datenbank aber jedes Jahr größer wird habe ich überlegt jetzt mit Listenfelder zu Arbeiten und darüber berechnungen durch zuführen. und jetzt hängt es leider.

Kurz zur beschreibung der Daten Bank
- sie soll zur berechnungen von Provision geführt werden
- Es gibt 4 bereiche (Listenfelder)
- jedes Listenfeld hat andere Produkte, pro produkt gibt es unterschiedliche Provision
- Mitarbeiter trägt im Formular den Kunden ein. Wählt ein Produkt aus den einen der Bereiche aus
- Über den Bericht soll dann die Provisionsabrechnung erstellt werden


Boolean felder weiß ich wie ich die zur berechnung nutze. ( Case When )

Leider Klappt das aber nicht mit den Listenfelder. Ich dachte wenn ich schreibe: Case When "N" = "1" then "4" when "N" = "2" Then "5" usw.

4 und 5 sollen die Provision sein.

Leider klappt dieser Gedanken gang nicht.

Ich hänge mal eine Beispiel datenbank an. Wie weit ich das jetzt geschrieben habe.

Vielleicht kann mir jemand von euch weiterhelfen.

Ich bedanke mich schon mal im Vorraus.

Gruß
Vanessa
Dateianhänge
Beispiel.odb
(16.24 KiB) 20-mal heruntergeladen

RobertG
*******
Beiträge: 1782
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Berechnungen aus Listenfelder

Beitrag von RobertG » Mi, 03.04.2019 17:09

Hallo Vanessa,

Dein Beispiel enthält ein nicht lesbares Formular, eine Abfrage, die keinen Inhalt anzeigt und einige Tabellen. An welcher Stelle hast Du Probleme mit der CASE WHEN ... - Funktion?

Gruß

Robert

Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Berechnungen aus Listenfelder

Beitrag von Vanessa Sturm » Do, 04.04.2019 13:35

Hallo Robert.

eigendlich wollte ich nur wissen wie ich aus den Listenfelder eine Berechnung mache.

Also MA gibt im Formular Name an uns was der Kunde gekauft hat ( Listenfeld). MA bekommt für den verlauf eine Provision

Über die Anfrage soll es dann berechnen Wieviel Provision er bekommt.

jetzt habe ich gerade gesehen das in dem ersten beisiel bei den Abfrage nichts kommt wohl Daten da sind. Somit habe ich noch mal ein Beispiel erstellt (Kürzer)

Tabelle erstellt, Verküppfung für die Listenfelder, Abfrage erstellt und ein Formular.

Jetzt hägt es aber wieder. ich kann nur Daten im Formular eintrage bei Kunden Tabelle ( Daten habe ich aus der Tabelle gezogen). Diese Daten werden mir aber nicht in der abfrage angezeigt.

Wenn ich das Formular über die Abfrage erstelle kann ich keine Daten eintrage ( logisch ist ja eigentlich nur zum schauen da)

Somit sind aus 1 Sache 2 geworden.

Wo ist mein Fehler in der neuen Datenbank?

und wie kann ich jetzt berechnen?

Beispiel anhand der neuen Datenbank

MA Trägt seine 3 Kunden ein.

Ich möchte zum schluss in einen Bericht wissen:

Wie heist der Kunde, Was hat er für Produkt genommen, wieviel Provision bekommt er für den Kunden.

So ist der Grundgedanke.

Kannst du mir Helfen Bitte.

Gruß

Vanessa
Dateianhänge
Beispiel Neu.odb
(21.47 KiB) 28-mal heruntergeladen

RobertG
*******
Beiträge: 1782
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Berechnungen aus Listenfelder

Beitrag von RobertG » Do, 04.04.2019 17:36

Hallo Vanessa,

zuerst einmal sollte die Abfrage stimmen. Wenn Du eine Abfrage als Grundlage eines Formulars mit Eingabemöglichkeit machen willst, dann muss die Abfrage zwingend den Primärschlüssel der Tabellen haben, die in der Abfrage enthalten sind. Deswegen ist die Abfrage schreibgeschützt. Eine Eingabe von Daten ist nicht möglich.

Die Abfrage zeigt nur die Daten an, die in der Tabelle "Kunden" stehen und sowohl in "Produkt 1" als auch in "Produkt 2" einen Eintrag haben. Kein Datensatz hat diese beiden Einträge. Wenn Du die Datensätze hier anzeigen willst, dann öffne die Abfrage zum Bearbeiten. Wenn Du dies in der GUI machst klicke mit der Maus auf die Verbindungen zwischen den Tabellen. Die Verbindungen müssen von "innerer Verbund" auf "Rechter Verbund" oder "Linker Verbund" geändert werden. Lies Dir dazu die Erklärung durch, die in dem Dialog steht. Du möchtest immer alle Datensätze aus der Tabelle "Kunden" sehen.

Da Du im Formular sowieso nur die Daten aus "Kunden" benötigt und die "Produkte" aus den anderen Tabellen über den Fremdschlüssel auswählst ist eine Abfrage erst einmal gar nicht nötig. Alles passt direkt zu der Tabelle "Kunden".

Gruß

Robert

Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Berechnungen aus Listenfelder

Beitrag von Vanessa Sturm » Sa, 06.04.2019 15:36

Hallo Robert,

Danke erst mal für deine Hilfe. Verstanden habe ich es. Leider gibt er mir immer wieder ein fehler bei Produkt 2 wenn ich auf Lnken/Rechten Verbund stelle. Jetzt habe ich noch ein bischen anders rum probiert und theoretisch sollte es doch so klappen auch mit der berechnung von den Listenfelder?

Darf ich dich noch einmal bitten drüber zuschauen? Habe jetzt beides auf inneren verbund wegen der fehlermeldung

Danke

Gruß

Vanessa
Dateianhänge
Beispiel Neu.odb
(14.64 KiB) 28-mal heruntergeladen

RobertG
*******
Beiträge: 1782
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Berechnungen aus Listenfelder

Beitrag von RobertG » Sa, 06.04.2019 18:06

Hallo Vanessa,

So sähe die Abfrage (in SQL) mit den Joins aus:

Code: Alles auswählen

SELECT "Kunden"."Datum", "Kunden"."Vorname", "Kunden"."Nachname", "Kunden"."Kundennr.", "Produkt 1"."Produkt 1", "Produkt 2"."Produkt 2", 
CASE WHEN "Kunden"."Zusatzverkauf1" = TRUE THEN '1' WHEN "Kunden"."Zusatzverkauf1" = FALSE THEN '0' END "Zusatz 1", 
CASE WHEN "Kunden"."Zusatzverkauf2" = TRUE THEN '1' WHEN "Kunden"."Zusatzverkauf2" = FALSE THEN '0' END "Zusatz 2", 
( "Kunden"."Zusatzverkauf1" * 2 ) + ( "Kunden"."Zusatzverkauf2" * 3 ) "Provi Zusatz", "Kunden"."ID", "Produkt 1"."Provi" + "Produkt 2"."Provi" "Provi K" 
FROM "Kunden" LEFT JOIN "Produkt 1" ON "Kunden"."Produkt 1" = "Produkt 1"."ID" LEFT JOIN "Produkt 2" ON "Produkt 2"."ID" = "Kunden"."Produkt 2"
Wo sind jetzt die Teile aus den Listenfeldern, die Du zur Berechnung heranziehen willst? Wozu brauchst Du die CASE WHEN - Abfrage? Durch die Abfrage änderst Du doch nur die Darstellung der Feldinhaltes - was anderes macht sie nicht.

Gruß

Robert
Dateianhänge
BeispielNeu_190407.odb
(14.9 KiB) 28-mal heruntergeladen

Vanessa Sturm
**
Beiträge: 27
Registriert: Di, 19.01.2016 17:41

Re: Berechnungen aus Listenfelder

Beitrag von Vanessa Sturm » Mo, 08.04.2019 15:18

Hallo Robert,

Erst mal danke dir,

Die Case When nehme ich zur berechnung der Provi für zusatzverkauf. Sehen muss ich nur was die MA verdienen.

Genauso bei den Produkten. ich lasse mir erst wieder im Bericht anzeigen was es ist.

Danke Dir.

Gruß Vanessa

Antworten