Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Access - Tabelle mit Nachschlagefeldern und berechnetem Feld

Begonnen von SvenE, Februar 09, 2016, 12:54:04

⏪ vorheriges - nächstes ⏩

SvenE

Guten Tag zusammen,

super Community hier, lese schon länger mit. Nun habe ich eine Wissenslücke und bräuchte eure Ideen dazu.
Ich habe mehrere Tabellen in einer Access Datenbank, die eine relationales DB Modell abbilden. Am Ende sollen die Daten über ein Formular befüllt werden.
In den Formularen gibt es etliche DropDown Felder, die Werte habe ich jeweils in ihren eigenen Tabellen eingebunden.

Nun habe ich eine Tabelle, wo ich eine Sprache und deren Kenntnis hinterlege.

Spalte 1: ID (AutoWert)
Spalte 2: Sprache (Nachschlagen aus einer anderen Tabelle, Verwendung der ID)
Spalte 3: Ausprägung (Nachschlagen aus einer anderen Tabelle, Verwendung der ID)
Spalte 4: SprachKenntnis (Berechnetes Feld? Dies soll den Wert von Spalte 2 und Spalte 3 verketten)

Nun soll in Spalte 4 der Wert aus Spalte 2 und 3 miteinander verkettet werden. Spalte 2 und 3 beinhalten aber nur die ID der jeweiligen verknüpften Tabelle.

Wie bekomme ich es hin, dass ich hier die Werte verkette, die hinter der ID stehen in der Tabelle.

Ich hatte es schon mit DLookUp versucht, aber das hatte irgendwie nicht hingehaue.

Danke für Euer Feedback und eure Ideen.

Grüße
Sven

MaggieMay

Hallo,
ZitatWie bekomme ich es hin, dass ich hier die Werte verkette, die hinter der ID stehen in der Tabelle.
den gewünschten Inhalt kannst du bei der Ausgabe in Formular oder Bericht mit Hilfe einer Abfrage darstellen.
Von Nachschlagefeldern in Tabellen solltest du generell Abstand nehmen, den Job erledigen Kombifelder in Formularen.
Freundliche Grüße
MaggieMay

SvenE

Danke für dein Feedback. Ok, ich verstehe deinen Einwand. Der Hintergrund war dir nicht klar, warum ich das so machen muss. Ich muss es in einem relationalen Modell erstellen, ohne tiefere Access Besonderheiten. Der Grund hierfür ist, dass es ein Prototyp sein soll, der später in Richtung MS SQL und Web Technolgie umgesetzt werden könnte.

Wäre über eine Tip wie man es so krumm umsetzt dankbar.

el_gomero

#3
Hallo,

Nachschlagefelder führen ein relationales Datenmodell aber ad absurdum -> http://dbwiki.net/wiki/Access_Anfänger:_Die_Nachteile_von_Nachschlagefeldern

So wie ich das sehe führt die Lösung für dein Problem über eine m:n Relation.

Tabelle 1 Sprachen
Tabelle 2 Benutzer
Tabelle 3 Sprachen_Benutzer

in der 3. werden nur die IDs der beiden ersten kombiniert um vorhandene Sprachenkenntnisse der Benutzer abzubilden. Ein Benutzer kann beliebig viele Sprachen sprechen, eine Sprache kann von beliebig vielen Benutzern gesprochen werden.

Nachtrag: die url oben wird zu früh abgeschnitten - den ganzen link bis ...Nachschlagefeldern in Adresszeile des Browsers kopieren - dann klappts.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MzKlMu

Hallo,
@SvenE
was verstehst Du hier unter Ausprägung ?
Gruß Klaus

MaggieMay

Hi,
Zitat von: SvenE am Februar 09, 2016, 13:16:24
Ich muss es in einem relationalen Modell erstellen, ohne tiefere Access Besonderheiten.
ein Grund mehr auf Nachschlagefelder zu verzichten (wobei es natürlich dabei bleibt, dass nur die IDs als Fremdschlüssel gespeichert werden!) und erst recht auf "berechnete" Datenfelder.
Freundliche Grüße
MaggieMay

SvenE

Unter Ausprägung wird zum Beispiel "1 - Muttersprache", "2 - sehr gut" usw. verstanden.
Benutzer werden nicht gekoppelt mit dieser Tabelle. Es wird im Endeffekt die Sprache "Englisch" mit der Ausprägung "Muttersprache" verknüpft ("Englisch (Muttersprache)"). Benutzer kategorisieren sich später selbst ein und wählt dann aus dem Katalog aus. Ich kann "Englisch (Muttersprache)".

MzKlMu

Hallo,
die Ausprägung (im Sinne eines Kenntnisstandes) gehört dann als Feld in die von Jürgen vorgeschlagene 3.Tabelle (Sprachen_Benutzer).

Verketten in einem berechneten Tabellenfeld ist der falsche Weg.
Gruß Klaus

SvenE