Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: pahiti78 am Dezember 29, 2011, 13:28:32

Titel: DOmSumme in Abfrage
Beitrag von: pahiti78 am Dezember 29, 2011, 13:28:32
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])
Titel: Re: DOmSumme in Abfrage
Beitrag von: Beaker s.a. am Dezember 29, 2011, 21:59:30
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
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 01, 2012, 12:41:11
Hallo Beaker,

es haut nicht hin. Es erscheint eine Fehlermeldung. Vielleicht gibt es ja eine andere Möglichkeit ohne DomSumme?
Titel: Re: DOmSumme in Abfrage
Beitrag von: MzKlMu am Januar 01, 2012, 12:50:48
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.

Titel: Re: DOmSumme in Abfrage
Beitrag von: DF6GL am Januar 01, 2012, 13:39:08
Hallo,

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



DomSumme("[GEWICHT_FRPF]";"tblKundendaten";"[AUFTRAG_DATUM]= Cdate('" & [AUFTRAG_DATUM] & "') And [VERS_WIRKLICH_KDNR]='"
Titel: Re: DOmSumme in Abfrage
Beitrag von: ebs17 am Januar 01, 2012, 16:40:33
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
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 01, 2012, 19:56:26
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
Titel: Re: DOmSumme in Abfrage
Beitrag von: MzKlMu am Januar 01, 2012, 20:21:30
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.
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 01, 2012, 21:05:18
Hallo,

bedutet dass das ich eine Summen- bzw. Grupierungsabfreage starten sollte und dann die Werte via SQL in meine Abfrage integriere?
Titel: Re: DOmSumme in Abfrage
Beitrag von: ebs17 am Januar 01, 2012, 21:31:57
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
Titel: Re: DOmSumme in Abfrage
Beitrag von: MzKlMu am Januar 01, 2012, 23:28:56
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.

Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 02, 2012, 06:03:29
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
Titel: Re: DOmSumme in Abfrage
Beitrag von: adriana am Januar 02, 2012, 11:32:52
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])
Titel: Re: DOmSumme in Abfrage
Beitrag von: ebs17 am Januar 02, 2012, 15:48:44
@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
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 04, 2012, 10:15:51
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
Titel: Re: DOmSumme in Abfrage
Beitrag von: database am Januar 04, 2012, 10:33:43
Hallo,

in deinem Statement fehlen Leerzeichen und die Stringverknüpfung passt nicht


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


Versuch mal obiges Statement

HTH
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 04, 2012, 10:49:26
Hallo Database,

danke für die schnelle Antwort. Jetzt kommt als Fehlermeldung Laufzeitfehler 3073 Die operation muss eine aktualisierbare Abfrage verwenden.
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 05, 2012, 08:49:37
Hallo, nachdem der Code zwar korrekt allerdings meine Abfrage nicht vernünftig war, habe ich jetzt eine AnfügAbfrage erstellt, wlehc mir dann die Gewichtssummen in die Tablle Abladeliste integriert. Ich möchte dann die Werte in der Tabelle tblKundendaten um diese Werte aktualisieren. Das haut soweit auch hin. Nur der Rechner rechnet ewig. Gibt es eine Möglichkeit dies zu beschleunigen?
Ich dachte mir ich nehm aus der Updatingprozess einige Werte heraus. (Nullwert) und importioere nur noch relevante Daten. Ich hab dazu die SQL Abfrage um eine where Bedingung ergänzt. Leider funktioniert es nicht. Könntet ihr nochmal drüber schauen? Danke.

Private Sub btnZuordnung_Click()
DoCmd.RunSQL "update tblKundendaten inner join tbl_Abladeliste " & _
               "on tblKundendaten.Abladeliste=tbl_Abladeliste.Abladeliste " & _
               "set tblKundendatendaten.GewichtStopp = tbl_Abladeliste.GewichtAbladeliste where tbl_Abladeliste.Abladeliste <>0/0;"
Titel: Re: DOmSumme in Abfrage
Beitrag von: DF6GL am Januar 05, 2012, 08:55:42
Hallo,


was soll das dennn sein?:

where tbl_Abladeliste.Abladeliste <>0/0


Und was bedeutet "Abladeliste"?
Titel: Re: DOmSumme in Abfrage
Beitrag von: pahiti78 am Januar 05, 2012, 10:07:58
Hallo,

also im Transportgewerbe gibt es Sendungen, welche aufgrund ihrer Größe oder Gewicht gebündelt werden müssen um eine optimale Fahrzeugauslastung zugewähren. Also wenn man zum Beispiel 10 Sendungen nach München hat, macht es Sinne diese 10 Sdg nicht einzeln zu fahren, sondern in einer Umaschlagshalle zu bündeln. Für jede Sdg in der Umschlagshalle wird eine Abladelsietr erstellt. Für jede Sdg welche direkt (ohne Umschlag) ist die Abladeliste 0/0 (keine Liste). Diese Werte (0/0) möchte ich aufgrund der Performance nicht mit in das Update einbeziehen.
Titel: Re: DOmSumme in Abfrage
Beitrag von: Maxel am Januar 06, 2012, 13:23:12
#gelöscht#
Titel: Re: DOmSumme in Abfrage
Beitrag von: DF6GL am Januar 06, 2012, 17:39:03
Hallo,


(irgendwie ist ein Beitrag von mir verschwunden...)

deshalb nochmal essentiell:

Wenn das Feld den Datentyp TEXT besitzt, dann muss das so lauten:

DoCmd.RunSQL       "...where tbl_Abladeliste.Abladeliste <> '0/0' "

wobei ich Zweifel am Tabellendesign hege...