Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Bezeichnungsfelder dynamisch ändern





Frage

Hallo zusammen, ich habe ein Formular mit Unterformular, in dem 30 werte erfasst werden müssen. Normalerweise verwendet Access ja die Spaltennamen (oder per Hand fest eingegebene Werte) für das Bezeichnungsfeld. Nun hätte mich mal interessiert ob und wie ich access dazu bringen kann dort einen Eintrag aus einer anderen Tabelle (Name) anzugeben. Ich hab mir schon überlegt, das ich im Bezeichnungsfeld eine id eintrage, die dann "irgendwie" mit der Tabelle mit den richtigen Bezeichnern vergleiche und in ein neues Feld einsteuere. (die orginal bezeichnungsfelder könnte ich ja ausserhalb des sichtbaren forms lagern). Nur kann ich nirgends ein Bezeichnungsfeld als "Quelle" verwenden. Wär toll wenn einer von euch eine Idee hätte. Gruß und Dank Targon

Antwort 1 von Targon

*schieb*

also über extra textfelder scheints nicht zu funktionieren..

sonst jemand ne bessere idee?

Danke Targon

Antwort 2 von El Bobbele

Hallo Targon!

Aber sicher funktioniert das über Textfelder. Wenn deine Spaltennamen in einer anderen Tabelle liegen, dann musst du per Abfrage dafür sorgen, dass Spaltenname und Wertespalte sich in derselben Datenherkunft befinden. Anschliessend bestückst du dein Endlosformular mit zwei Textfeldern und löschst die zwei hinzugefügten Bezeichnungsfelder. Das eine Textfeld bindest du an die Namensspalte, das andere an die Wertspalte. Die Eigenschaften des ersten Textfeldes stellst du folgendermaßen ein:

Gesperrt: Ja
Aktiviert: Nein
Hintergrundart: Transparent
Spezialeffekt: Flach

Jetzt sieht das Textfeld schon fast aus wie ein Bezeichnungsfeld, fehlt nur noch der Doppelpunkt:

Steuerelementinhalt: =[Spaltenname] & ":"

Achte aber unbedingt drauf, dass das Textfeld nicht denselben Namen hat wie die Spalte in der Datenherkunft, ansonsten siehst du einen #Fehler. Setze vor dem Namen des Textfeldes ein "txt", dann ist das kein Problem mehr.

Gruss
El Bobbele


Antwort 3 von Targon

Hi
und genau in dem "Wertebinden" ist wohl das problem.

ich hab folgende beiden tabellen

tbl_evu_names mit u.a. diesen Spalten
evu_id [autowert]
bezeichnung [namensfeld das in das bez.feld soll]
str
nr
ort
[etc]
--------
tbl_evu_mengen
materialnr
1
2 [nr = evu_id]
3
4
5
.. bis 34

also geht das mit der Abfrage nich - oder doch?

Antwort 4 von El Bobbele

Hallo!

Klar geht das mit Abfragen, genau dafür sind sie ja da. :-)

Das war schon mal ne gute Idee von dir, die Tabellendefinitionen aufzuführen, dann gibt es im Gegenzug die passende SQL-Anweisung:

SELECT tbl_evu_mengen.*, tbl_evu_names.bezeichnung & ":" AS bez
FROM tbl_evu_mengen INNER JOIN tbl_evu_names
     ON tbl_evu_mengen.[2] = tbl_evu_names.evu_id;


Heisst der Fremdschlüssel in tbl_evu_mengen tatsächlich "2"? Wenn nicht, dann "[2]" durch den richtigen Namen ersetzen. Die SQL-Anweisung ist jedenfalls schon mal ne passende Grundlage. Im Abfrage-Editor kannst du ja dann weitere benötigte Felder hinzufügen usw. Ausserdem wird die Sache mit dem Doppelpunkt bereits in der Abfrage abgewickelt, d.h. die Steuerelement-Eigenschaft des Feldes im Formular muss nicht gesondert behandelt werden. Nur die Formatierung müsstest du von meinem ersten Beitrag noch übernehmen. Der Feldname kann jetzt auch beibehalten werden, da die Steuerelementinhalt-Eigenschaft in der Phase nicht mehr berechnet wird - das macht ja schon die Abfrage.

Gruss
El Bobbele

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: