Neuigkeiten:

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

Mobiles Hauptmenü

Felder in einem Formular miteinander verknüpfen // abhängige Feldauswahl

Begonnen von tim.hartmann, März 04, 2015, 11:22:12

⏪ vorheriges - nächstes ⏩

tim.hartmann

Hallo,

ich bin neu hier und noch ein Anfänger in Access.

Ich habe zwei Felder. Ein Feld Kategorie, was sich auf Tabelle Kategorie bezieht und ein Feld Thema, was sich auf Tabelle Thema bezieht. Nun möchte ich, dass Feld Kategorie in Abhängigkeit von Feld Thema geändert wird. Beispiel: Thema ist Erdbeben und Kategorie wäre dann Naturkatastrophen.

Ich habe es bisher versucht über Datensatzherkunft mit folgender SQL Abfrage:
SELECT tbl_Kategorie.Kategorie
FROM tbl_Kategorie INNER JOIN tbl_Thema ON tbl_Kategorie.[ID_Kategorie] = tbl_Thema.FK_Thema
WHERE ((([tbl_Kategorie].[ID])=[tbl_Thema].[FK_Thema]));


Vielen Dank für eure Hilfen!

Gruß
tim.hartmann

MaggieMay

Hallo,

nach meiner Logik kommt zuerst die Kategorie und dann die Wahl des Themas.
Und in der Thementabelle stünde dann der Fremdschlüssel zur Kategorie, also nicht "FK_Thema" sondern "FK_Kategorie".

Aber was ist deine eigentliche Frage, wo liegt das Problem?

Zitatüber Datensatzherkunft mit folgender SQL Abfrage
Kommt hier ein Kombifeld zum Einsatz?
Freundliche Grüße
MaggieMay

tim.hartmann

#2
Ja, ein Kombifeld kommt ebenfalls zum Einsatz.

Okay, ich bin etwas weitergekommen. Habe eine weiteres Problem. Also hier mal meine vereinfachte SQL Abfrage ohne das Verknüpfen von zwei Tabellen:

SELECT tbl_Kategorie.Kategorie
FROM tbl_Kategorie
WHERE ((([tbl_Kategorie].[ID])=[Kombinationsfeld74]));

Kombinationsfeld74 ist das Kombinationsfeld mit den Werten der Tabelle Kategorie.

Allerdings funktioniert es leider nicht. Wie kann ich einen Wert aus einem Kombinationsfeld in einer SQL Abfrage verwenden?

MaggieMay

Freundliche Grüße
MaggieMay

tim.hartmann

Der Zweck ist derselbe wie oben beschrieben. Ich möchte in abhängig von Feld Kategorie nur diejenigen Werte in Feld Thema anzeigen lassen, die gleiche ID/Fremd-ID haben. (siehe oben Beispiel zu Naturkatastrophen)

MaggieMay

Dann solltest du aber auch auf die tbl_Thema zugreifen:
SELECT tbl_Thema.ThemaID, tbl_Thema.Thema
FROM tbl_Thema
WHERE tbl_Thema.FK_Kategorie = [Kombinationsfeld74]

das liefert den Input für ein zweispaltiges Kombifeld, gebundene Spalte ist die ID, über die Spaltenbreiten wird geregelt, welche Spalte sichtbar wird.
Freundliche Grüße
MaggieMay

tim.hartmann

Ok, ich hatte es oben falsch erklärt. Du bist sogar schon einen Schritt weiter.

Erst einmal wollte ich mich nur auf eine Tabelle konzentrieren: Also z. B. auf Tabelle Kategorie. Wenn in einem Feld die 1. ID von TAbelle Kategorie auswählt wird, soll in einem anderen Feld automatisch der Name von der Kategorie angezeigt werden. Ich bekomme es nicht hin. Hier noch einmal der SQL Befehl:
SELECT tbl_Kategorie.Kategorie
FROM tbl_Kategorie
WHERE ((([tbl_Kategorie].[ID])=[Kombinationsfeld74]));

MaggieMay

Du könntest die Datenatzherkunft des Kombifeldes folgendermaßen einstellen:

SELECT tbl_Kategorie.ID, tbl_Kategorie.Kategorie
FROM tbl_Kategorie
ORDER BY Kategorie

Das Anpassen der Kombifeld-Eigenschaften, Spaltenanzahl und Spaltenbreiten nicht vergessen!

Bei dem Textfeld stellst du den Steuerelementinhalt dann wie folgt ein:
=Kombinationsfeld74.Column(1)
Freundliche Grüße
MaggieMay

tim.hartmann

Das ist eine elegante Lösung, da bin ich mir sicher das es funktioniert ohne das ich es ausprobiert habe! Vielen Dank! :-)

Aber trotzdem (evtl. für spätere Probleme): Gibt es eine Möglichkeit auf Werte aus Feldern in SQL Abfragen zuzugreifen?

MaggieMay

Zum Auslesen einzelner Werte aus einer Tabelle oder Abfrage kannst du die DLookUp-Methode einsetzen. Das geht auch direkt im Steuerelementinhalt.
Freundliche Grüße
MaggieMay

tim.hartmann

Ich hab doch noch ein Problem zu obiger Sache. Und zwar ist das Feld Thema ebenfalls ein Kombifeld und kein Textfeld. Also wie kann ich die relevanten Items in einem Dropdown Menü anzeigen lassen`?

MzKlMu

Hallo,
ich verstehe die Frage nicht, wenn das Kombi die Thementabelle als Datenquelle/Datenherkunft hat, werden doch die Themen angezeigt.
Kannst Du Dein Problem mal präzisieren ?
Gruß Klaus

MaggieMay

Freundliche Grüße
MaggieMay