Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Felder in Abfrage addieren

Begonnen von Nordlicht33, Januar 14, 2013, 22:13:58

⏪ vorheriges - nächstes ⏩

Nordlicht33

Guten Abend,
ich habe mir eine scheinbar einfache Aufgabe gestellt, die mich mittlerweile allerdings schon mehrere Stunden beschäftigt: Ich arbeite mit Access 2010 und will mit einer Abfrage aus 1 Tabelle 3 Teilsummen addieren. Die von mir definierten Ausdrücke heißen wie folgt:

PreisA: [MengeA]*[EPreisA]
PreisB: [MengeB]*[EPreisB]
PreisC: [MangeC]*[EPreisC]
Gesamtsumme: [PreisA]+[PreisB]+[PreisC]

Merkwürdigerweise errechnet die Auswahlabfrage aber nicht die Gesamtsumme. Die Prise A,B,C werden korrekt aus den Einzelpreisen und Mengen errechnet; nur die Summierung funktioniert nicht. Die Spalte in der Abfrage bleibt leer und zeigt nichts an. Wenn ich jeweils 2 der 3 Preisarten addiere, bekomme ich ein korrektes Ergebnis, nur mit 3 Produkten funktioniert es nicht. Ich habe alle Felder auf EURO formatiert, jedes Einzelfeld zeigt auch richtig an, jede Zweierkombination ergibt auch die richtige Summe nur mit 3 Produkten funktioniert das nicht.

Hat irgendjemand eine Idee, woran das liegen kann? Das ist doch ein ganz schlichtes Problem oder?

MzKlMu

#1
Hallo,
versuche es so:
PreisA: [MengeA]*[EPreisA]
PreisB: [MengeB]*[EPreisB]
PreisC: [MangeC]*[EPreisC]
Gesamtsumme: [MengeA]*[EPreisA]+[MengeB]*[EPreisB]+[MengeC]*[EPreisC]

Wobei ich ziemlich sicher bin, dass die Tabellenstruktur falsch ist. Was machst Du bei einem 4.Preis?
Es müssen auch immer alle 6 Felder gefüllt sein, sonst funktioniert es auch nicht. Es muss dann noch jedes einzelne Feld in die Nz() Funktion eingeschlossen werden. Daher, unbedingt Struktur überdenken.
Du brauchst zur Erfassung der Mengen und Preise eine extra Tabelle in der jeder Preis mit Menge ein Datensatz ist und keine Felder.

Wie sieht denn die jetzige Tabelle genau aus?
Gruß Klaus

Nordlicht33

Danke für die schnelle Antwort!
Ich habe es jetzt nach Deinem Schema gemacht; bekomme aber immer noch kein Ergebnis. (Spalte in der Abfrage bleibt leer). Es ist auch immer noch so, dass die Summierung funktioniert, wenn ein Summenglied weglasse; also nur 2 Teilprodukte benutze. Merkwürdig, nicht wahr?

Mag sein, dass du Recht hast, dass die Tabellenstruktur nicht stimmt. Aber darum geht es mir im Moment nicht. Ich bin ACCESS-Anfänger und habe bisher solche Anwendungen mit EXCEL gerechnet und möchte von der großen Tabelle weg, in verknüpfte Tabellen. Deshalb übe ich im Moment mit einfachen Beispielen um mit der Software vertraut zu werden. Und dafür habe ich mir einfach das Beispiel mit den 3 Produkten gewählt; kann man auch als Faktorpreise ansehen, die man summieren will. Ist einfach nur ein Beispiel mit dem ich den Umgang mit Abfragen verstehen will.

Ich vermute, dass das mit einer Typunverträglichkeit der Felder zusammenhängt; aber wenn ich die Abgrage nach EXCEL exportiere, bekomme ich klare Daten. Insofern bin ich für weitere Ratschläge gerne zu haben.


MzKlMu

Hallo,
es macht keinen Sinn Access mit falschen Strukturen lernen zu wollen.
Das was Du vorhast, braucht man bei Access in dieser Form nicht.
Du musst Dich auch völlig von der Exceldenke lösen, Access erfordert einen völlig anderen Tabellenaufbau als Excel.

Und Fragen solltest Du auch beantworten:
Zitat von: MzKlMuWie sieht denn die jetzige Tabelle genau aus?

Oder die DB hier hochladen.
Gruß Klaus

Nordlicht33

Danke für die Hinweise, die ich gerne annehme und auch danke für das Angebot, in solchen Fällen Teile der Datenbank hochzuladen und von der Community analysieren zu lassen. Darauf komme ich gerne zurück. Mir ist auch klar, dass ACCESS ganz anders als EXCEL ist, aber das ist eben auch ein Lernproblem, weil man immer wieder in EXCEL zurückfällt.

Ich habe mein Problem mittlerweile auch gelöst: Ich hatte einfach versucht, Summen von Feldern zu bilden, die keine Inahlte hatten. EXCEL nimmt in solchen Fällen an, dass das der Wert im Feld 0 ist und summiert dann; ACCESS sieht das offensichtlich als undefiniertes Feld an und verweigert die Rechnung. Als ich die leeren Felder durch 0 ersetzt habe, funktionierte die Addition. Das ist wieder ein Beispiel, dass EXCEL und ACCESS in diesen Funktionen verschieden sind und mich würde schon interessieren, wie man so ein Problem in ACCESS auch anders lösen kann. Aber zunächst mal ist das Problem für mich gelöst und ich habe was dazugelernt, was ich gerne weitergebe, falls anderen auch so ein Anfängerfehler passiert.

Ich danke noch mal für die Hilfsangebote.

MzKlMu

Hallo,
den Hinweis auf leere Felder und dass diese mit Nz() behandelt werden müssen, gab ich bereits in meiner 1. Antwort.
Zitat von: MzKlMuEs müssen auch immer alle 6 Felder gefüllt sein, sonst funktioniert es auch nicht. Es muss dann noch jedes einzelne Feld in die Nz() Funktion eingeschlossen werden.

Das sieht dann so aus:
Gesamtsumme: Nz([MengeA];0)*Nz([EPreisA];0)+Nz([MengeB];0)*Nz([EPreisB];0)+Nz([MengeC];0)*Nz([EPreisC];0)
Nz ist auch für die Berechnung PreisA/B/C zu verwenden.
Außerdem solltest Du die Gesamtsumme immer auf meine Art brechnen, da man in weiteren Berechnungen nicht immer berechnete Felder verwenden kann.
Gruß Klaus