Hallo zusammen,
stehe wieder auf dem Schlauch.... :(.
Folgendes Problem:
In einer Abfrage habe ich eine Prozentwert.
In einer Tabelle habe ich mehrer Prozentbereiche und einen dazugehörigen Maluswert.
Hier ein Beispiel:
Prozentwert Abfrage: 93,21 %
Prozentbereiche Tabelle (drei Spalten (von, bis, Malus)):
- 90,01 % - 92,00 % = Maluswert: -2 %
- 92,01 % - 94,00 % = Maluswert: -1,5 %
Der Prozentwert der Anfrage liegt im Bereich des Maluswertes - 1,5 %.
Mein Ziel ist es nun, dass in der Abfrage zu jedem Prozentwert, der entsprechende Maluswert angezeigt wird.
Wie bekomme ich das am Einfachsten hin?
Vielen Dank im Voraus
Andreas
Hallo,
sind das negative Werte ?
Wenn ja, würde 93,21 nicht gefunden werden.
Hallo,
nein, es sind keine Negativwerte.
Das Minuszeichen ist ein Auszählungszeichen...
Ist dumm gewählt von mir, sorry....
Hallo MzKlMu,
kannst Du mir bei dem Problem helfen?
Vielen Dank im Voraus und ein schönes Wochenende
Andreas
Hallo,
wie sind die Prozentwerte gespeichert, als reine Prozentzahl zwischen 0 und 100 oder als Zahl <=1 und mit Prozent formatiert ?
...die Werte sind als Prozent formatiert, d.h. <=1...
Hilft es Dir, wenn ich eine kleine Beispiel-DB anfertige und hochlade?
Hallo,
ja, Beispieldb wäre hilfreich. Dann geht es schnell.
Hallo Klaus,
habe eine Beispiel-DB angehängt.
In der Tabelle "tbl_Maluswerte" findest Du die Bereiche mit den entsprechenden Maluswerten und in der Tabelle "tbl_Performance" findest Du die Performancewerte.
Das Ergebnis der Abfrage "qry_Malus" soll nun sein, dass zu der Performance der entprechende Malus zugeordnet wird....
Hallo,
auch Malus 0% gehört in die Tabelle.
0% ist dann größer 98,49% ?
Anmerkung:
Malus steht ja für Abzug, daher ist es rein mathematisch falsch den Malus mit negativem Vorzeichen zu versehen. Das ist einfach auch positiv. Die Formel bestimmt ja später dass abgezogen wird.
Wenn Du einen Malus hast von 5 % und da kannst Du einfach den Betrag mit dem Prozentwert multiplizieren
100*0,05 = 5
100-5=95
Aber
100*-0,05 = -5
100-(-5) = 105
Das nur am Rande.
Hallo,
im Anhang die etwas umgebaute DB.
Das Feld "von_Perf" in der Tabelle mit dem Maluswerten ist überflüssig. Habe ich gelöscht. Das Feld "bis_Perf" reicht.
Im VBA Modul ist eine kleine Funktion die den Maluswert mit DFirst ermittelt.
Für DFirst muss das Feld "bis_Perf" zwingend indiziert sein (ohne Duplikate, aufsteigend), sonst funktioniert DFirst nicht.
Die 100% (1) habe ich noch ergänzt.
PS:
Wenn die Originaldb auch so aufgebaut ist, so gibt es da erheblichen Verbesserungsbedarf beim Datenmodell. Und ein Feldname "Name" ist absolut tabu, auch in einem Beispiel.
Guten Morgen Klaus,
vielen Dank für Deine Hilfe und Tipps...
Wünsche Dir ein sonniges Wochenende
Andreas