Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Mehrwertiges Feld im Bericht

Begonnen von gromax, Mai 14, 2015, 17:13:53

⏪ vorheriges - nächstes ⏩

gromax

Liebe Access-Profis,

in meiner DB habe ich zur Verwaltung von Schülern mit Behinderungen bei den Behinderungsarten ein mehrwertiges Feld [SOP_MFS] eingepflegt. Hier sollen die Anwender bei Mehrfachbehinderungen mehrere Optionen anklicken können. Im Formular klappt die Anzeige der Bezeichnungen [Geistige Behinderung; Körperbehinderung;...] prima und nach entsprechender Option wird das auch korrekt gespeichert. In der entsprechenden Abfrage als Grundlage für einen Bericht funktioniert auch die Anzeige der Kurzbezeichnungen [GBP; KBP;...]; im Bericht selbst werden aber die ID-Nummern der Behinderungsarten [1;2;...] statt der entsprechenden Kurz-Bezeichnungen (GBP;HBP;...) ausgewiesen.
Wie kann ich dies denn korrigieren?

Für Eure Hilfe bedanke ich mich vorab!

Viele Grüße
gromax

MaggieMay

Hallo,

nimm die Tabelle mit den Kurztexten mit in die Abfrage hinein.
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

das habe ich getan, es hat aber keinen Einfluss auf die Darstellung des Feldes im Bericht. Dort werden die beiden richtigen ID-Nummern durch Strichpunkt getrennt angezeigt und eben nicht die passenden Kurzbezeichnungen?!

Was mache ich dabei falsch?

Viele Grüße
gromax

MzKlMu

Hallo,
ZitatWas mache ich dabei falsch?
das Mhrwertige Feld ist bereits vom Grundsatz her der falsche Weg. Solche Felder verhindern den sauberen Aufbau einer DB. Ein klassischer Aufbau mit 3 Tabellen (n:m Beziehung) wäre der bessere Weg. Es ist ziemlich aufwendig aus den Mehrwertfeldern den passenden Text zu ermitteln, eine Lösung dazu habe ich nicht parat.

Ich würde die DB umstrukturieren. In allen Foren wird eindringlich von Mehrwertfeldern (und Nachschlagefeldern) abgeraten.
Gruß Klaus

MaggieMay

Hallo,
ZitatWas mache ich dabei falsch?
zeig doch bitte mal den SQL-Code der Abfrage.

BTW:
Zitatdas Mhrwertige Feld ist bereits vom Grundsatz her der falsche Weg.
Ich hatte es für falsch, die neuen Features von Access grundsätzlich zu verteufeln, man muss nur lernen, richtig damit umzugehen. Intern wird es vermutlich nicht viel anders als bisher umgesetzt, nur die Bedienung ist leichter geworden. Warum also sollte man sich das nicht zu nutze machen?

Und was das betrifft:
ZitatIn allen Foren wird eindringlich von Mehrwertfeldern (und Nachschlagefeldern) abgeraten.
das sind doch ehrlich gesagt immer dieselben Leute. ;-)

Dies hier ist lediglich meine persönliche, unqualifizierte Meinung und sollte nicht als Anlass für Grundsatzdiskussionen gesehen werden.
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

anbei mein SQL_Code der Abfrage, in der die Bezeichnungen in einem Feld in Kurzform korrekt angezeigt werden:

SELECT tbl_BEARBEITUNG_SCH_VER.EIN_FS, tbl_BEARBEITUNG_SCH_VER.UMS_FS, tbl_SONDERPAEDAGOGIK.SOP_PS, tbl_BEARBEITUNG_SCH_VER.BEA_BescheidDatum, tbl_BEARBEITUNG_SCH_VER.BEA_SchjBeginn, tbl_BEARBEITUNG_SCH_VER.VER_FS, tbl_EINRICHTUNGEN.EIN_Name, tbl_EINRICHTUNGEN.EIN_Straße, tbl_EINRICHTUNGEN.EIN_PLZ, tbl_EINRICHTUNGEN.EIN_Ort, tbl_EINRICHTUNGEN.EIN_Telefon1, tbl_EINRICHTUNGEN.EIN_Mail, tbl_EINRICHTUNGEN.EIN_Leitung, tbl_VERWALTUNGEN.VER_Name, tbl_SCHUELER.SuS_Name, tbl_UMSETZUNGEN.UMS_Art_lang, tbl_SCHUELER.SuS_VaterNameGanz, tbl_SCHUELER.SuS_MutterNameGanz, tbl_SCHUELER.SuS_GebDat, tbl_SCHUELER.SuS_Erstkontakt, tbl_SCHUELER.SuS_Straße, tbl_SCHUELER.SuS_PLZ, tbl_SCHUELER.SUS_Wohnort, tbl_SCHUELER.SuS_Tel1, tbl_SCHUELER.SuS_Tel2, tbl_BEARBEITUNG_SCH_VER.BEA_Schulbegleitung, tbl_SCHUELER.NAT_FS, tbl_BEARBEITUNG_SCH_VER.SOP_MFS, tbl_SONDERPAEDAGOGIK.[SOP_Feststellung (lang)], tbl_SONDERPAEDAGOGIK.[SOP_Feststellung (kurz)]
FROM tbl_VERWALTUNGEN INNER JOIN (tbl_UMSETZUNGEN INNER JOIN (tbl_SONDERPAEDAGOGIK INNER JOIN (tbl_SCHUELER INNER JOIN (tbl_EINRICHTUNGEN INNER JOIN tbl_BEARBEITUNG_SCH_VER ON tbl_EINRICHTUNGEN.EIN_PS = tbl_BEARBEITUNG_SCH_VER.EIN_FS) ON tbl_SCHUELER.SuS_PS = tbl_BEARBEITUNG_SCH_VER.SuS_FS) ON tbl_SONDERPAEDAGOGIK.SOP_PS = tbl_BEARBEITUNG_SCH_VER.SOP_FS) ON tbl_UMSETZUNGEN.UMS_PS = tbl_BEARBEITUNG_SCH_VER.UMS_FS) ON tbl_VERWALTUNGEN.VER_PS = tbl_BEARBEITUNG_SCH_VER.VER_FS;



Viele Grüße
gromax

MaggieMay

Hi,

die Abfrage ist nicht gerade "übersichtlich", da solltest du bitte noch die Feld- und Tabellennamen dazu nennen, um die es geht.

Ich schätze, die Tabelle die dem Mehrwert-Nachschlagefeld zugrunde liegt ist hier immer noch nicht dabei, oder?
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

ich wusste dass Du die Übersichtlichkeit der Abfrage monierst - aber habe Nachsicht!

Die Stammdaten-Tabelle zu den Behinderungsarten heißt tbl_SONDERPAEDAGOGIK hat die Feldnamen [SOP_PS], [SOP_Feststellung (lang)] und [SOP_Feststellung (kurz)].
Diese Tabelle ist mit der Tabelle tbl_BEARBEITUNG_SCH_VER über die Beziehung [SOP_PS]-[SOP_MFS] verbunden; das Feld [SOP_MFS] ist das Fremdschlüsselfeld in der tbl_BEARBEITUNG_SCH_VER und zugleich auch das mehrwertige Feld. Diese Tabelle ist eine m:n-Tabelle, an der auch die tbl_SCHUELER angebunden ist.

Das mehrwertige Feld ist also das Feld [SOP_MFS] und war in der obigen Abfrage bzw. im SQL-Code bereits enthalten.

Gruß
gromax

MaggieMay

#8
ZitatDiese Tabelle ist mit der Tabelle tbl_BEARBEITUNG_SCH_VER über die Beziehung [SOP_PS]-[SOP_MFS] verbunden; das Feld [SOP_MFS] ist das Fremdschlüsselfeld in der tbl_BEARBEITUNG_SCH_VER und zugleich auch das mehrwertige Feld.
Ich kann in der Abfrage keine Verknüpfung mit SOP-MFS entdecken.

Erstelle doch zur Vereinfachung der Angelegenheit einfach mal eine Abfrage, die lediglich auf den beiden Tabellen basiert um die es hier geht und zeige uns den daraus resultierenden SQL-Code.
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

ein Screenshot des Beziehungsfensters könnte hilfreich sein.

gromax

Hallo MaggieMay, hallo Franz,

danke für Eure Unterstützung; anbei habe ich die Dateien eingefügt, die vielleicht weiterhelfen.
Folgend der SQL-Code zur "kleinen" Abfrage:

SELECT tbl_SCHUELER.SuS_Name, tbl_SONDERPAEDAGOGIK.[SOP_Feststellung (kurz)], tbl_BEARBEITUNG_SCH_VER.SOP_MFS
FROM tbl_SONDERPAEDAGOGIK INNER JOIN (tbl_SCHUELER INNER JOIN tbl_BEARBEITUNG_SCH_VER ON tbl_SCHUELER.SuS_PS = tbl_BEARBEITUNG_SCH_VER.SuS_FS) ON tbl_SONDERPAEDAGOGIK.SOP_PS = tbl_BEARBEITUNG_SCH_VER.SOP_FS;


Viele Grüße Euch beiden
gromax

DF6GL

Hallo,


das Feld "SOP_MFS.Value"  hat ja auch keine Beziehung zu einer anderen Tabelle...

Ist für dieses Mehrwertfeld überhaupt eine Tabelle benutzt worden oder ist das nur eine Wertliste des zugehörenden Listenfeldes ?

gromax

Hallo Franz,

ist das Feld SOP_MFS.Value nicht das interne, "unsichtbare" Unter-Feld eines mehrwertigen Feldes?
Eigentlich habe ich in der m:n-Tabelle 'tbl_BEARBEITUNG_SCH_VER' das Fremdschlüsselfeld SOP_FS durch ein mehrwertiges Feld SOP_MFS ergänzt, so dass der Anwender jetzt mehr Werte bei Vorliegen einer 'Mehrfach-Behinderung' auswählen kann.

Muss ich denn bei einem mehrwertigen Feld einer Tabelle noch einer weitere Tabelle zur Aufnahme der Optionen erstellen? Wie sollte denn eine solche Tabelle aussehen?

Viele Grüße
gromax

DF6GL

Hallo,

die weitere Tabelle sieht genau so aus wie alle anderen 1-Tabellen auch:

Primärschlüsselfeld
Eigenschaftenfeld1
Eigenschaftenfeld2
..


Das "Unter-Feld eines mehrwertigen Feldes"  (xxx.Value)  fungiert hier selbst als
"n-Tabelle" (VBA-Objekttyp DAO.Recordset2 ) mit nur dem entspr. Fremdschlüsselwert zwecks  Relation zu einer  1-Tabelle, die hier aber nicht angegeben ist.



gromax

Hallo Franz,

sorry - aber das verstehe ich nicht.
Ich habe doch die Schüler in einer Tabelle (tbl_SCHUELER), in einer anderen Tabelle habe ich die sonderpädagogischen Maßnahmen (tbl_SONDERPAEDAGOGIK) und beide treffen sich in der m:n-Tabelle tbl_BEARBEITUNG_SCH_VER. Nun werden in dieser m:n-Tabelle auch in korrekter Weise die Mehrfachbehinderungen im Feld SOP_MFS gespeichert, nämlich 'GBP', 'KBP' für eine zweifache Behinderung wie eine 'Geistige Behinderung' und eine 'Lernbehinderung'.
Was soll ich denn inhaltlich in dieser neuen Tabelle abspeichern? Ich habe gar keine Idee, warum ich das Feld SOP_MFS.Value in eine Relation setzen soll. Mit welchen Inhalten soll dies denn generiert werden?

Schiebe mich bitte in die richtige Spur!

Viele Grüße
gromax