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])
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
Hallo Beaker,
es haut nicht hin. Es erscheint eine Fehlermeldung. Vielleicht gibt es ja eine andere Möglichkeit ohne DomSumme?
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.
Hallo,
vermutlich hängt's am Datum....
DomSumme("[GEWICHT_FRPF]";"tblKundendaten";"[AUFTRAG_DATUM]= Cdate('" & [AUFTRAG_DATUM] & "') And [VERS_WIRKLICH_KDNR]='"
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 TabelleWer 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
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
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.
Hallo,
bedutet dass das ich eine Summen- bzw. Grupierungsabfreage starten sollte und dann die Werte via SQL in meine Abfrage integriere?
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
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.
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
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])
@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
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
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
Hallo Database,
danke für die schnelle Antwort. Jetzt kommt als Fehlermeldung Laufzeitfehler 3073 Die operation muss eine aktualisierbare Abfrage verwenden.
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;"
Hallo,
was soll das dennn sein?:
where tbl_Abladeliste.Abladeliste <>0/0
Und was bedeutet "Abladeliste"?
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.
#gelöscht#
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...