Neuigkeiten:

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

Mobiles Hauptmenü

Dropdown in Tabelle abhängig von anderer Spalte in Tabellenzeile

Begonnen von Maximilian, April 21, 2020, 11:35:49

⏪ vorheriges - nächstes ⏩

Maximilian

Hallo Zusammen,

habe mich die letzten Wochen viel in Access eingefuchst und meine Datenbank schon gut aufbauen können. Nicht zuletzt auch durch viele Recherche hier im Forum.
Jetzt ist es nun endlich soweit, ich habe eine Problemstellung, die ich durch Recherche nicht mehr lösen konnte und deshalb euch direkt fragen möchte:

Ich habe eine Tabelle "tbl_Kabelliste", welche alle verlegten Elektrokabel enthält. Zwei Spalten dieser Tabelle sind die Spalten "Kabeltyp" und "Querschnitt".
Für die Spalte Kabeltyp habe ich eine Tabelle "tbl_Kabeltyp", wo alle verwendeten Kabeltypen (z.B. NYY-J, N2XSEY, NSGAFöU, etc.) enthalten sind.
Die zweite Spalte Querschnitt soll von der Auswahl in der Spalte Kabeltyp abhängig sein, da die verschiendenen Kabeltypen unterschiedliche Querschnitte haben.
Dafür habe ich eine dritte Tabelle "tbl_Querschnitte" erstellt und als Untertabelle zu "tbl_Kabeltypen" in einer 1:n-Beziehung eingerichtet. Die Zuordnung der Kabeltypen und Querschnitte ist damit denke ich erledigt.

Mein Problem ist, dass ich einer Zeile der Tabelle "tbl_Kabelliste" nicht den Kabeltyp eingeben kann und anschließend nur noch die zu diesem Kabeltyp passenden Querschnitte angezeigt werden... :(

Ich hoffe mein Vorhaben konnte ich einigermaßen verständlich rüberbringen. Habt ihr vielleicht eine Lösund dafür?
Per Abfrage wüsste ich nicht wie es gehen soll, da ich ja den Kabeltyp der aktiven Zeile in "tbl_Kabelliste" auslesen muss. Per VBA wäre das vielleicht eher möglich, da kenne ich die Befehle zum Abfragen der aktiven Zeile einer Tabelle leider nicht...

Danke schonmal für eure Hilfe :)

MzKlMu

#1
Hallo,
da fehlt noch eine weitere Tabelle zur Zuordnung der Querschnitte zum Kabeltyp, denn der gleiche Querschnitt kann auch zu einem anderen Kabeltyp passen und ein Kabeltyp kann ja mehrere Querschnitte haben.

Dann kannst Du im Formular ein abhängiges Kombifeld anlegen.
Auf Tabelleneben geht das nicht. Du solltest auch die Dropdown Felder in der Tabelle unbedingt in normale Textfelder ändern. Dropdown Felder in Tabellen sind ungeeignet.
Siehe hierzu:
http://www.donkarl.com?FAQ4.36

Zeige bitte mal ein Bild des Beziehungsfensters, damit man den Tabellenaufbau genau kennt.
Gruß Klaus

Maximilian

Danke für die schnelle Antwort.

vielleicht habe ich es noch nicht ganz rübergebracht. Auf einem Formular mittels zwei Kombinationsfeldern bekomme ich die Beziehung dargestellt.
Ich möchte allerdings direkt in der Tabelle diese Abhängigkeit bei der Dateneingabe schon haben. Grund ist, dass ich die Tabelle in meinem Formular auch als Tabelle darstelle und ausfülle. Anbei ein paar Bilder dazu.
Die Zuordnung welche Querschnitte zu welchen Kabeltypen habe ich über eine Untertabelle realisiert.

Maximilian

So habe jetzt doch noch eine Lösung gefunden und möchte die natürlich nicht vorenthalten.

Da ich die Tabelle auf meinem Formular anzeige, kann ich mit dem Unterformular arbeiten.
Über VBA kann ich im Unterformular, was die Tabelle darstellt die aktive Zeile abfragen bzw. direkt den eingetragenen Kabeltyp:

Private Sub Form_Current()
    Forms!frm_01_Stationen.txt_Kabeltyp.Value = Me.Kabeltyp
    Me.Refresh
End Sub


Der eingetragene Kabeltyp wird in dem unabhängigen Textfeld txt_Kabeltyp "zwischengespeichert". Das Feld selbst ist unsichtbar, stört also nicht weiter.

Zusätzlich habe ich noch eine Abfrage erstellt, welche alle zu dem in txt_Kabeltyp hinerlegten Kabeltyp zugeordnete Kabelquerschnitte ermittelt. Diese Abfrage ist nun Quelle für den Nachschlageassistent in meiner Tabelle Feld Querschnitte.

Ist bestimmt nicht die beste Art es zu realisieren, funktioniert aber.

Maximilian


DF6GL

Hallo,


vermutlich stimmt der Tabellenaufbau nicht und das Konzept ist "verquert"

Du brauchst:

tblKabeltypen
enthält alle vorkommenden Kabeltypen


tblKabelquerschnitte  (nur, falls es sich um immer wiederholbare Querschnitte handelt)
enthält alle vorkommenden Querschnitte


tblKabel   
enthält alle restlichen und einmalig pro Kabel vorkommenden Daten eines kompletten Kabels

tblKabelFührung
Lage und Verlegung , Einbaudatum usw. , evtl. einschließlich Konfektion/Anschluss (dazu möglicherweise weitere Grunddatentabellen) der einzelnen Kabel.


Beziehungen:

tblKabeltypen   ---\
                             > - 1:n ---   tblKabel  ---1:n---  tblKabelFührung
tblQuerschnitte ---/   

Einzelform "frmKabel" mit UFO ("frmKabelführung")  in Endlos-Ansicht.

In "frmKabel" Kombifelder für die Auswahl eines Kabeltyps und eines Querschnitts


Endlosforms "frmKabeltypen" und "frmQuerschnitte" für die Pflege dieser Stammdaten.



Dann braucht es keine versteckten Textfelder oder sonstige Tricksereien.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Maximilian

Zitat von: DF6GL am April 21, 2020, 16:47:38
tblKabelquerschnitte  (nur, falls es sich um immer wiederholbare Querschnitte handelt)
enthält alle vorkommenden Querschnitte

Damit fehlt allerdings die Abhängigkeit der angezeigten Querschnitte zum ausgewählten Kabeltyp.

Je nach Kabeltyp sind es unterschiedliche Querschnitte und Aderzahlen die möglich sind. Eine Auswahl von allen Querschnitten würde zu unmöglichen Kabeltyp- und Querschnittskombinationen führen. Durch eine Abfrage des ausgewählten Kabeltyps muss diese Fehleingabe verhindert werden.

Beispiel:
NYY-J und NSGAFöU. Das eine ist mehradrig (z.B. NYY-J 3*185/95mm²), das andere ist eine Einzelader (für Drehstrom wäre das z.B. NSGAFöU 3*1*185mm²).
Ein NYY-J 3*1*185mm² gibt es nicht, genausowenig ein NSGAFöU 3*185/95mm². Es muss also eine Fehleingabe verhindert werden.

MzKlMu

Hallo,
ZitatDamit fehlt allerdings die Abhängigkeit der angezeigten Querschnitte zum ausgewählten Kabeltyp.
Nein, tut es nicht. Die Abhängigkeit ergibt sich in der Tabelle "tblKabel", dort werden die zulässigen Kombinationen aus Typ und Querschnitt erfasst.

Ich halte Dein bisheriges Konzept auch für verquer.
Die  in #4 gezeigten Beziehungen sind völlig falsch.
Gruß Klaus

DF6GL

Hallo,

wie Klaus schon sagt...

ZitatEin NYY-J 3*1*185mm² gibt es nicht, genausowenig ein NSGAFöU 3*185/95mm². Es muss also eine Fehleingabe verhindert werden.

Für die Fehleingabe (bzw. für die Vermeidung dieser) bist Du zuständig während der Erfassung aller existierenden (zulässigen) Kabel.  Für die Verlaufstabelle ("tblKabelFührungen") werden nur "existierende" Kabel per Kombifeld (aus Tabelle "tblKabel") ausgewählt und deren Primärschlüssel(-wert) in tblKabelführungen (als Fremdschlüssel) gespeichert.
Da gibt es keine Falscheingabe bzgl. Typ und Querschnitt, es kann höchstens ein falsches Kabel gewählt werden.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Maximilian

Danke für eure Antworten, geben mir gleichzeitig auch nochmal eine andere Sicht, wie ich's besser machen kann.
Da es meine erste "große" Access-Datenbank ist, sind bestimmt wie ihr ja auch schon geschrieben habt, viele Sachen noch nicht perfekt.

Bei der Eingabe der Tabellenstruktur und der Eingabe reden wir glaube ich aber aneinander vorbei. Die jetzt mehrfach erwähnte "tblKabelFührungen" gibt's bei mir gar nicht, die wurde von DF6GL vorgeschlagen.
Es soll für ein Kabel der Kabeltyp separat angegeben werden, dafür auch die Spalte "Kabeltyp". Es soll also z.B. "N2XSEY" enthalten sein, nicht aber "N2XSEY 3*120/70mm²". Der Querschnitt soll in einer zusätzlichen Tabellenspalte stehen.
Die Zuordnung von Kabeltypen und Querschnitte habe ich durch eine Untertabelle realisiert, weiter oben ist auch ein Screenshot davon.

Die Eingabe von Kabeltyp und Querschnitt soll nun auf dem Formular in der angezeigten Tabelle erfolgen, auch davon ist ein Screenshot schon weiter oben. Ein extra Formular zur Eingabe sollte nicht eingeblendet werden.

MzKlMu

#10
Hallo,
dem bisher gesagten ist nichts hinzuzufügen. Dein bisheriger Aufbau ist falsch.
Die Beziehungen nach #4 sind wie gesagt unbrauchbar, gelinde gesagt.
Du brauchst eine Tabelle für die Kabelzusammenstellung (tblKabel).
In dieser Tabelle gibt es ein Fremdschlüssel (FS) zum Typ und ein FS zum zu diesem Typ gehörenden Querschnitt. Für jede gültige Kombination einen Datensatz.
Der Primärschlüssel (PS) dieser Tabelle (tblKabel) wird dann weiter verwendet.
In einem Formular wird mit einem ungebundenen Kombifeld der Kabeltyp gewählt und mit einem gebundenen Kombi der vom Typ abhängige Querschnitt. Es wird nur der PS zur Tabelle "tblKabel" gespeichert.
Mit einer Abfrage kannst Du dann sowohl Typ als auch den dazugehörenden Querschnitt anzeigen.

Im Anhang noch ein Bild der Beziehungen wie diese aussehen sollten.
Gruß Klaus

Maximilian

Klingt plausibel, muss ich mir aber nochmal in Ruhe anschauen zum verinnerlichen  :-[

Auf meinem Formular habe ich die Tabelle "tbl_Kabelliste" direkt dargestellt, wie auch im Screenshot anbei erkennbar. Die Eingabe soll eigentlich direkt in die Tabelle erfolgen....
So wie ich euch nun verstehe, sollte man keine Tabelle auf einem Formular darstellen und Daten eingeben können?

MzKlMu

Hallo,
die abhängigen Kombis wie Du diese willst gehen nicht mit der Tabelle, hierzu ist ein Formular notwendig.
Du kannst ein Formular als Datenblatt darstellen, das sieht dann aus wie eine Tabelle.

In Access arbeitet man grundsätzlich nicht mit den Tabellen direkt. Nur dann ist eine gesteuerte und sinnvolle Datenpflege zu realisieren.
Gruß Klaus

DF6GL

Hallo,

in erster Linie und zuallererst geht es um die Datenverhältnisse und deren Beziehungen.

Wenn Du "tblKabelführung" nicht benötigst, dann lass sie weg, was diesem widerspricht:

ZitatIch habe eine Tabelle "tbl_Kabelliste", welche alle verlegten Elektrokabel enthält.

Es stellt sich die Frage, was die DB denn nun leisten soll.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Maximilian

Zitat von: DF6GL am April 22, 2020, 11:39:41
Es stellt sich die Frage, was die DB denn nun leisten soll.

Die gesamte Datenbank soll zur Verwaltung unserer Stromversorgung dienen. Es sind die Stammdaten aller Trafostationen enthalten, Verlinkungen zu Schaltplänen, Übersichtsplänen, etc. Alle Komponenten der Trafostationen wie Schaltanlagen, Transformatoren und Nebenanlagen. Alle Trafo-Daten, die Konstellation aller Schaltanlagen, Schutzeinstellungen sowie die Belegung aller Abgangsfelder. Zählpunktverwaltung ist auch noch mit drin. Zudem noch Stationstagebücher und Prüfungsverwaltung.
Die hier angesprochene Kabelliste ist nur ein kleiner Teil der Abgangsfelder.

Ihr habt mir auf jeden Fall einen guten Denkanstoß gegeben, wie ich die Kabelliste strukturierter in mein Projekt mit einbinden kann  :D