evolution
Goto Top

SQL oder Wenn-Abfrage in Access 2013 (Notenschlüssel aus Tabelle in Unterformular zuordnen)

Hallo,

ich hätte mal eine SQL-Frage..
Ich habe in Access 2013 eine Tabelle mit einem Notenschlüssel.

[sys_notenschlüssel]
ID punkte note
1 92 sehr gut
2 81 gut
3 67 befriedigend
4 50 ausreichend
5 30 mangelhaft
6 0 ungenügend


Nun habe ich ein Formular mit Unterformular, dass mir die einzelnen Tests mit den erreichten Punkten anzeigt von einzelnen Personen ausgibt.
Aus Bequemlichkeit mit Verknüpft VON und NACH.
 
SELECT sys_lks.bezeichnung, sys_lks_noten.punkte, sys_lks.max_punkte, sys_lks_noten.datum, sys_lks_noten.kunden_id
FROM sys_lks INNER JOIN sys_lks_noten ON sys_lks.id = sys_lks_noten.test_id;

Sieht dann so aus..

bezeichnung punkte punkte_max prozent datum
Test 1 65 100 65 29.10.2014
Test 2 27 100 27 29.10.2014
etc..

So weit alles gut! Aber jetzt würde ich gerne in der Liste automatisch noch den IHK-Schlüssel anzeigen, wobei ich scheitere.
Geht das überhaupt in einer Abfrage oder muss ich das evtl. mit einer Wenn-Funktion lösen (was mir nicht so gefallen würde)

Bin für jede Anregung dankbar.

Gruss Umpalumpa

Content-Key: 253319

Url: https://administrator.de/contentid/253319

Printed on: April 24, 2024 at 07:04 o'clock

Mitglied: 114757
114757 Oct 29, 2014 at 23:54:04 (UTC)
Goto Top
dafür gibts in Access die switch Funktion die du auch in einer SQL-Abfrage nutzen kannst:
http://www.techonthenet.com/access/functions/advanced/switch.php

Gruß
jodel32
Member: MadMax
MadMax Oct 30, 2014 at 11:40:16 (UTC)
Goto Top
Moin,

füge in Deine Notentabelle noch eine Spalte "Punkte_bis" ein ("Punkte" ist dann praktisch "Punkte_von") und dann geht es mit einem einfachen join:
join sys_notenschlüssel on sys_lks_noten.punkte >= sys_notenschlüssel.Punkte and sys_lks_noten.punkte <= sys_notenschlüssel.Punkte_bis

Gruß, Mad Max
Member: evolution
evolution Oct 30, 2014 at 15:04:55 (UTC)
Goto Top
Danke an Euch, aber ich hab es inzwischen anders gelöst. Ich hab die Schlüsseltabelle (100 Punkte-System) anders aufgebaut und und les da jetzt die Note mit nem JOIN aus. So kann ich jetzt auch die Detailnoten ausgeben.

Allerdings hab ich noch ein kleines Problem wenn es Tests gibt, die keine 100 Punkte haben. Dann muss ich mir erst noch nen Prozentsatz ausrechen. Das es etwas umständlich..
Member: Guenni
Guenni Oct 31, 2014 at 18:50:49 (UTC)
Goto Top
Zitat von @evolution:

. . .

Allerdings hab ich noch ein kleines Problem wenn es Tests gibt, die keine 100 Punkte haben. Dann muss ich mir erst noch nen
Prozentsatz ausrechen. Das es etwas umständlich..


Hi umpalumpa,

du kannst doch mit VB ein Modul einfügen. Dort schreibst du eine Funktion zum Ausrechnen der erreichten Prozent.

Der Funktion übergibst du zwei Parameter:

- max = maximal zu erreichende Punktzahl

- punkte = erreichte Punktzahl

Function auswertung(max, punkte)
 auswertung = FormatNumber(100 / max * punkte, 2)
End Function

Diese Funktion baust du in deine Abfrage ein:

SELECT punkte, punkte_max, auswertung([punkte_max],[punkte]) AS Prozent FROM Tabelle1;


Gruß
Günni