Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Lalikowski am April 03, 2019, 12:45:42

Titel: Wert in Tabelle finden
Beitrag von: Lalikowski am April 03, 2019, 12:45:42
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
Titel: Re: Wert in Tabelle finden
Beitrag von: MzKlMu am April 03, 2019, 12:57:05
Hallo,
sind das negative Werte ?
Wenn ja, würde 93,21 nicht gefunden werden.
Titel: Re: Wert in Tabelle finden
Beitrag von: Lalikowski am April 03, 2019, 13:21:07
Hallo,

nein, es sind keine Negativwerte.

Das Minuszeichen ist ein Auszählungszeichen...

Ist dumm gewählt von mir, sorry....
Titel: Re: Wert in Tabelle finden
Beitrag von: Lalikowski am April 05, 2019, 15:14:20
Hallo MzKlMu,

kannst Du mir bei dem Problem helfen?

Vielen Dank im Voraus und ein schönes Wochenende

Andreas
Titel: Re: Wert in Tabelle finden
Beitrag von: MzKlMu am April 05, 2019, 15:22:18
Hallo,
wie sind die Prozentwerte gespeichert, als reine Prozentzahl zwischen 0 und 100 oder als Zahl <=1 und mit Prozent formatiert ?
Titel: Re: Wert in Tabelle finden
Beitrag von: Lalikowski am April 05, 2019, 15:36:19
...die Werte sind als Prozent formatiert, d.h. <=1...

Hilft es Dir, wenn ich eine kleine Beispiel-DB anfertige und hochlade?
Titel: Re: Wert in Tabelle finden
Beitrag von: MzKlMu am April 05, 2019, 15:50:09
Hallo,
ja, Beispieldb wäre hilfreich. Dann geht es schnell.
Titel: Re: Wert in Tabelle finden
Beitrag von: Lalikowski am April 05, 2019, 16:41:04
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....
Titel: Re: Wert in Tabelle finden
Beitrag von: MzKlMu am April 05, 2019, 17:03:34
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.
Titel: Re: Wert in Tabelle finden
Beitrag von: MzKlMu am April 05, 2019, 20:40:41
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.
Titel: Re: Wert in Tabelle finden
Beitrag von: Lalikowski am April 06, 2019, 09:23:43
Guten Morgen Klaus,

vielen Dank für Deine Hilfe und Tipps...

Wünsche Dir ein sonniges Wochenende

Andreas