Überlauf ?
Mahlzeit!
Was bedeutet denn die Fehlermeldung "Überlauf" im Zusammenhang mit einer Abfrage?
Ich möchte eine Abfrage über eine Abfrage erstellen, habe dann dies mit einem Kriterium versehen >0 dann erhalte ich die Fehlermeldung "Überlauf"
Was bedeutet das?
gruß
morpheus
Antwort schreiben
Antwort 1 von Marie vom 05.12.2019, 04:15 Options
Meistens wenn Du durch 0 dividierst. ist das vielleicht der Fall??
Gruß Marie
Hallo Marie,
das kann gut sein.
Es ist nämlich so , dass bei den berechneten Feldern welche dabei sind, bei denen durch 0 dividiert wird. Da steht dann in der Spalte Anfügevoraussetzung #Fehler!
Aber die Spalte die ich mit > 0 kruppieren möchte sind eig nur noch Werte also da wird nur multipliziert aber nicht dividiert.
Deshalb verstehe ich das trotzdem nicht ganz. Wenn ich dann sage > 0 wieso schmeist er mit dann nicht zumindest die 0 Werte raus und lässt die #Fehler halt drin?
gruß
morpheus
sorry kleiner Fehler.
hinten wird nicht multipliziert sondern addiert.
gruß
Ich hab das jetzt so gelöst.
Ich hab eine aktualisierungsabfrage drüber laufen lassen die mir 0 durch "" ersetzt und dann fallen die #Fehler raus und dann kann ich eine Abfrage drüber erstellen und das Kriterium > 0 eingeben.
Gruß
Morpheus
Antwort 5 von Marie vom 06.12.2019, 10:46 Options
Äh, Du machst doch wohl nicht deshalb den ganzen Aufwand mit den 10 Abfragen??
Du kannst doch schreiben nicht Null.
Gruß Marie
Hallo Marie
es ist so.
ich habe einen Mitarbeiter und dazu Werte und die Zeiten dazu.
z.B.
Name..........Bearbeitete.EMails........BenötigteZeit.......Produktivität
Max...............10.....................................10..........................1...................
Ich Teile immer die Bearbeitete durch die Zeit.
Das ganze hab ich zihemlich oft.
Die Produktivität ist also immer ein berechnetes Feld.
Am Ende addiere ich alle Produktivitäten.
Das Problem ist.
Ich habe in manchen Datensätzen leider eine 0 drin.
Wenn die 0 bei der Zeit drin steht wird durch 0 geteilt und in der Produktivität steht dann #Fehler is ja logisch weil division durch 0 nicht möglich ist.
Deshalb muss ich die 0 len raus haben.
Wenn ich nämlich beim Feld wo ich die PRoduktivitäten addieren ein Kriterium eingeben um zu filtern kommt "Überlauf". Sobald in meine Datensätzen keine Produktivität #Fehler aufweist kann ich das Feld problemlos mit einem Kriterium versehen.
Ich muss also die 0 len rausbekommen sonst funktioniert das ganze nicht.
Is leider ziehmlich kompliziert beschrieben.
Deshalb bräuchte ich am einfachsten einen Code für VBA der mir alle Nullen über suchen und ersetzten in ein "" umsetzt das die Spalten leer bleibne. Wenn durch "" geteilt wird bleibt die Produktivität auch "" und dann steht am Ende als Ergebnis einfach ne 0 drin bei der Addition und die kann ich rausfiltern.
gruß
morpheus
Antwort 7 von Marie vom 06.12.2019, 11:22 Options
Ich glaube Du verrennst Dich gerade, ob Du durch 0 oder durch nix dividierst gibt sicherlich denselben Überlauffehler.
Schick doch einfach mal den Code wo Du diese Division durchführst. Weisst ja mittlerweile, wenn es eine Abfrage ist, dann Ansicht SQL und hier reinkopieren.
Das geht doch auch so, dass Du nur dann teilst, wenn benötigte Zeit
nicht Null, Dann kannste Dir doch die Ersetzerei sparen.
Gruß Marie
Hallo Marie
das ganze zu posten wird wahrscheinlich etwas tu groß.
Das ganze sieht so aus.
Select Menge, Zeit, Menge/Zeit AS Produktivität
und das ganze dann eben 10 - 15 mal.
und als letztes dann beim sql
nz(Prod1) + nz(Prod2) + nz(Prod3) ..... As Anzeigebedingung.
Wenn vorne in einer Produktivität durch 0 geteilt wird steht in der Produktivität #Fehler, und dann steht auch in der Anzeigebedingung #Fehler und sobald in der Anzeigebeindungen 1 mal #Fehler auftaucht kommt es zum Überlauf. Ich habe allerdings Datensätze wo in der Menge etwas drin steht in der Zeit aber das Feld leer ist, da kommt dann bei der Produktivität wirklich "" raus und nicht #Fehler deshalb müsste ich die 0 rausbekommen.
gruß
morpheus
Antwort 9 von Marie vom 06.12.2019, 13:58 Options
SELECT Tabelle1.Menge, Tabelle1.Zeit, IIf([Zeit]>0,[Menge]/[Zeit],"") AS Produktivität
FROM Tabelle1;
Na mehr brauch ich doch nicht. Wenn Du statt
Zitat:
Menge/Zeit AS Produktivität
das da unten schreibst, dann is doch gut.
Zitat:
IIf([Zeit]>0,[Menge]/[Zeit],"") AS Produktivität
Gruß Marie