Neuigkeiten:

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

Mobiles Hauptmenü

DOmSumme in Abfrage

Begonnen von pahiti78, Dezember 29, 2011, 13:28:32

⏪ vorheriges - nächstes ⏩

pahiti78

Hallo Zusammen,

ich habe eine Tabelle erstellt, welche tblKundendaten heißt. In dieser Tabelle sind die Sendungsstrukturen von Kunden integriert. Jetzt habe ich pro Kunden so ca 5 Sendungen am Tag. Diese werden in einer Abfrage abgefragt. In dieser Abfrage möchte ich ein weiteres Feld haben, welches mir das Gesamtgewicht oder den Gesamtumsatz kundenspezifisch pro Tag einfügt. (PS. mit diesen Wert müsste ich weitere rechnen, deshalb ist es wichtig, dass dieser Wert in dieses Abfrage erscheint) Jetzt habwe ich eine DomSummefunktion im Uadrucksgenerator erstellt. Die Werte welche zurück geben werden stimmen überhaupt nicht. Anbei mein Ausdruck. Es soll die Summe des Gewichts pro Tag je Kundennummer aus der Tabelle Kundendaten in die Abfrage integriert werden.
Vielleicht weiß jemand was ich falsch machen?

DomSumme([tblKundendaten]![GEWICHT_FRPF];"tblKundendaten";[AUFTRAG_DATUM]=[tblKundendaten]![AUFTRAG_DATUM] Und [VERS_WIRKLICH_KDNR]='[tblKundendaten]![VERS_WIRKLICH_KDNR])
Gruß
Matze

Beaker s.a.

Hallo pahiti,

Versuch's mal so (ungetestet)

DomSumme("[GEWICHT_FRPF]";"tblKundendaten";"[AUFTRAG_DATUM]=#" & [AUFTRAG_DATUM] & "# And [VERS_WIRKLICH_KDNR]='" & [VERS_WIRKLICH_KDNR]) & "'"

Wenn [VERS_WIRKLICH_KDNR] vom Datentyp Zahl ist musst Du die Fliegenschisse (') rausnehmen.
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

pahiti78

Hallo Beaker,

es haut nicht hin. Es erscheint eine Fehlermeldung. Vielleicht gibt es ja eine andere Möglichkeit ohne DomSumme?
Gruß
Matze

MzKlMu

Hallo,
ZitatEs erscheint eine Fehlermeldung.
Super, solche Antworten sind wenig hilfreich für Dich.
Kannst Du Dir nicht denken, dass der Text der Fehlermeldung ganz hilfreich sein könnte? Möglicherweise käme man mit dem Text direkt zu einer Lösung.

Es macht aber keinen Sinn, das in der Abfrage zu rechen, es ist ja nur ein Wert.
Du kannst ´die Formel als Steuerelementinhalt eines Formularfeldes verwenden:
=DomSumme("[GEWICHT_FRPF]";"tblKundendaten";"[AUFTRAG_DATUM]=#" & [AUFTRAG_DATUM] & "# And [VERS_WIRKLICH_KDNR]='" & [VERS_WIRKLICH_KDNR]) & "'"
Die Formel habe ich jetzt einfach mal von Ekkehard übernommen. Mangels Text der Fehlermeldung weis ich nichts besseres.
Mit dem Formularfeld kannst Du auch rechnen.

Gruß Klaus

DF6GL

Hallo,

vermutlich hängt's am Datum....



DomSumme("[GEWICHT_FRPF]";"tblKundendaten";"[AUFTRAG_DATUM]= Cdate('" & [AUFTRAG_DATUM] & "') And [VERS_WIRKLICH_KDNR]='"
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

ebs17

ZitatVielleicht gibt es ja eine andere Möglichkeit ohne DomSumme?
Klar. In einer Abfrage kann man SQL verwenden, auch als Unterabfrage. Das ist nur natürlich und i.d.R. die bessere Variante (bei gleichem Aufwand).

DSum("Feld", "Tabelle")
SELECT Sum(Feld) FROM Tabelle

Wer hier Ähnlichkeiten entdeckt, könnte seine Schlussfolgerungen daraus ziehen. Das mögliche Kriterium in einer Domänenaggregatfunktion ist dann sowieso pure SQL-Syntax.

ZitatGesamtumsatz kundenspezifisch pro Tag
Das würde man eigentlich nicht als zusätzliches Feld in einer Abfrage ermitteln, sondern über eine eigene, dann gruppierte und aggregierte Abfrage.

Um "alles" in einer Tabelle haben zu wollen, dafür braucht es für mich eine besondere Begründung: Wir sind doch nicht in Excel, wo Datenhaltung, Berechnung und Darstellung in einer Tabelle stattfindet.
In Access kann man sehr einfach Formulare/Berichte und darin Steuerelemente erzeugen und darin Berechnungsergebnisse (z.B. Abfrageergebnisse in Unterformularen oder Listenfeldern) darstellen.

ZitatGesamtgewicht
Was wird gegen was gewichtet?

MfGA
ebs

pahiti78

Hallo,
die Fehlerbeschreibung lautet: Syntaxfehler in Zeichenfolge in Abfrageausdruck '[Auftrag_Datum]=#04.10.2011# and [vers_wirklich_kdnr] ='556172'. Beide Paramater stammen vom ersten Datensatz der Abfrage. Im Ausgabwefeld der Abfrage wird dann ein fehler ausgegegebn. In einem Formular diese Werte darzustellen, kann ich mir nicht vorstellen, da ca 400.000 Datensätze verarbeitet, verrechnet werden. Ich danke euch schonmal vorab für euer Bemühen. Danke
Gruß
Matze

MzKlMu

Hallo,
Zitatda ca 400.000 Datensätze verarbeitet,
dann kannst Du die Domwertfunkltion innerhalb einer Abfrage vergessen. Das wird von der Performance nichts werden.
Hier dürfte nur eine gruppierte Abfrage zum Ziel führen.
Gruß Klaus

pahiti78

Hallo,

bedutet dass das ich eine Summen- bzw. Grupierungsabfreage starten sollte und dann die Werte via SQL in meine Abfrage integriere?
Gruß
Matze

ebs17

Zitatkann ich mir nicht vorstellen
Die Verarbeitung von offensichtlich Betriebsdaten hängt von Deiner Vorstellungskraft ab?
Oder gibt es da noch etwas mehr?

MfGA
ebs

MzKlMu

Hallo,
Zitatbedutet dass das ich eine Summen- bzw. Grupierungsabfreage starten sollte und dann die Werte via SQL in meine Abfrage integriere?
Nein, auch das dürfte nicht gelingen. Die gruppierte Abfrage ist die Basis, keine weiteren Abfragen.

Aber vielcht stellts Du mal im Zusammenhang dar, was Du genau vorhast, bzw. mit der Abfrage noch rechnen willst.

Gruß Klaus

pahiti78

Hallo,

also ich habe Sendungsdaten ca. 400.000 Stück. Zu jeder Senung existiert ein Gewicht, ein Umsatz, ein Absender, ein Empfaenger, diverse Kosten usw. Jetzt möchte ich wissen, wie oft in einem bestimmten Zeitraum ein bestimmter Abseder oder Empfaenger angefahren wurde. Ich möchte dann weiterhin wissen, wieviel Sendungsgewicht als Summe am Tag oder im Monat dort abgeholt wurden. Dann möchte ich wissen wieviel Prozent der jeweiligen Sendungen dem Gesamtgewicht pro entsprechen. (Gewicht der Sdg geteilt durch SummeGewicht des SdgTages für den entsprechenden Kunden)

Danke schonmal
Gruß
Matze

adriana

hallo,

ich habe ein Problem? Wie kann ich bei Access kumulieren. Ich weiss das es mit der DomSumme geht, aber er sagt mir #Fehler oder er berechnet mit von der einen Spalte die Gesamtsumme und fügt sie überall gleich ein. Die Abfrage muss so sein das es pro Monat errechnet werden.

kumulierte Hauptforderung: DomSumme("[Originalbetrag in BW]";"Abfragename";[Monat]=[Monat])

ebs17

@pahiti78:
SELECT Absender, Count(Absender) AS Anz, Sum(Gewicht) AS GewSumme
FROM Tabelle
WHERE Zustelltag Between [BeginnBetrachtung] AND [EndeBetrachtung]
GROUP BY Absender

SELECT T.*,
T.Gewicht / (SELECT Sum(X.Gewicht) FROM Tabelle X
WHERE T.Empfaenger = X.Empfaenger AND T.Zustelltag = X.Zustelltag)
FROM Tabelle T


Und als Gedankenstütze: Darstellung und Berechnung sind zwei verschiedene Dinge. Wenn Du keine Abfrage in einem Formular darstellen kannst, dann wäre ja auch keine Tabelle darstellbar.

MfGA
ebs

pahiti78

Hallo,

ich habe jetzt ein zweite Abfrage (qry_Stopp) gestartet welche mir die Gewicht je Entladung summiert. (Gruppierungsabfrage)
Jetzt möchte ich mittels VBA Anweisung diese Werte in meine Tablle tblKundendaten integrieren.
Die Schlüsselspalte in Abfrage und Tabelle ist die Abladeliste. (dieser Wert ist beiden gleich)
Die Tabelle verfügt über eine Spalte in der das GewichtAbladeliste aus den Werten der Spalte der Abfrage integriert werden soll.(zielspalte) Die Spalte der Abfrage lautet ebenfalls GewichtAbladeliste (quellspalte)
Meine Anweisung sieht so aus.

DoCmd.RunSQL "update tblKundendaten inner join qry_Stopp" _
& "on tblKundendaten.Abladeliste=qry_Stopp.Abladeliste" _
& "set tblKundendaten.GewichtAbladeliste = qry_Stopp.GewichtAbladeliste;"


Leider lässt sie sich nicht ausführen. Es erscheint eine Syntaxfehlermeldung. Ich bin am verzweifeln. Vielleicht sieht jemand meinen Fehler. ich danke euch
Gruß
Matze