Neuigkeiten:

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

Mobiles Hauptmenü

Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld

Begonnen von Carlos_C, August 04, 2015, 09:05:29

⏪ vorheriges - nächstes ⏩

Carlos_C

Hallo Forum,

ich habe folgende Frage, und zwar:

Ich habe eine Suchmaske erstellt, über die ich Testberichte suchen kann. Die Suchkriterien gebe ich in Felder ein (z.B. Datum, Prüfer, Gerätetyp, usw.) und nach Knopfdruck zeigt er mir die ganzen Berichte, die angelegt wurden.

Ich möchte aber jetzt, dass, nachdem ich den Gerätetyp (Typ1, Typ2, Typ3) im Kombifeld ,,Gerätetyp" gewählt habe, bestimmte Felder in der Suchmaske eingeblendet werden.

Also, in anderen Wörtern, wenn ich z.B. den Gerätetyp 1 wähle, sollen die Felder

,,Merkmal1Typ1", ,,Merkmal2Typ1" und ,,Merkmal3Typ1"

eingeblendet werden, aber die Felder

,,Merkmal1Typ2", ,,Merkmal2Typ2" und ,,Merkmal3Typ2" (also die Merkmale zu dem Typ 2) und

,,Merkmal1Typ3", ,,Merkmal2Typ3" und ,,Merkmal3Typ3" (also die Merkmale zu dem Typ 3)

sollen ausgeblendet werden.

Kann man sowas machen?

Danke im Voraus für Eure Tipps.
Gruß,

Carlos

MzKlMu

Hallo,
Zitat,,Merkmal1Typ1", ,,Merkmal2Typ1" und ,,Merkmal3Typ1"
hast Du diese Felder wirklich in der Tabelle ?
Gruß Klaus

Carlos_C

Ja, sie heißen aber in Wirklichkeit nicht so. Ich möchte die richtigen Namen nicht schreiben, weil ich hier sonst alle verwechseln werde. Es geht um Meßgeräte, die mehrere Familien haben, und jede Familie bestimmte Merkmale haben, wie z.B. Material Lager bei der Familie X und Rohrtyp bei der Familie Y.
Gruß,

Carlos

MzKlMu

Hallo,
das Datenmodell muss überarbeitet werden.
Du benötigst zunächst mal eine Tabelle die alle Merkmale enthält als jeweils ein Datensatz. In diese Tabelle muss noch ein Feld (Zahl) das den zutreffenden Gerätetyp für dieses Merkmal speichert.
Dann benötigst Du eine Tabelle zur Zuordnung der Geräte zu einem Mermal. Da die Gerätetabelle ein Schlüsselfeld zum Typ hat, hast Du automatisch einen Bezug zum passenden Merkmal.
Die Merkmale stellt man dann in einem Unterformular des Geräteformulars dar. Wenn Hafo und Ufo über die Schlüsselfelder (GerätID) verknüpft werden, werden automatisch nur passende Merkmale zum Gerät angezeigt.
Das sichtbar/unsichtbar machen entfällt ersatzlos.

Du solltest die DB umbauen, das Konzept ist so für eine Datenbank ungeeignet.
Gruß Klaus

Carlos_C

Hallo Klaus,

danke für Deine Antwort!

Ich versuche gerade, zu verstehen, was Du geschrieben hast. Korrigiere mich bitte, wenn ich falsch bin.

Also, nehmen wir an, jeder Testbericht hat fixe Felder (Datum, Prüfer und Gerätetyp). Unter Gerätetyp kann man ,,Typ1", Typ2" oder ,,Typ3" wählen. Je nach dem Gerätetyp, dass man wählt, gibt es verschiedene variable Felder, also jeder Gerätetyp hat einen variablen Dokumentenstamm.

Der Typ 1 hat z.B. ,,Baulänge", ,,Material Turbine" und ,,Gewicht".

Der Typ 2 hat z.B. ,,Farbe", ,,Höhe" und ,,Material Zahnrad".

Der Typ 3 hat z.B. ,,Nenndurchmesser", ,,Durchfluss" und ,,Verbindungsart".

(Die Begriffe des variablen Dokumentenstamms sind übrigens jetzt von mir ausgedacht, ich möchte hier nicht die wirklichen Begriffe schreiben. Es ist auch egal, ob sie die richtigen sind).

Ich erstelle eine Tabelle tblGeraeteTypen die so aussieht:

ID   Typ
1   Typ1
2   Typ2
3   Typ3

Dann erstelle ich eine Tabelle tblBerichte mit den Feldern:

ID   Datum      Prüfer      TypID

Und eine Tabelle tblGeraeteMerkmale:

ID       Merkmal1        Merkmal2            Merkmal3
1       Baulänge        Mat. Turbine        Gewicht
2       Farbe                Höhe                    Mat. Zahnrad
3       Nenndurchm.    Durchfluss            Verbindungsart

Bin ich bis da richtig?

Jetzt möchte ich, dass, wenn ich im Suchformular bin, und im Feld ,,Gerätetyp" z.B. ,,Typ1" wähle, die Felder ,,Baulänge", ,,Farbe" und ,,Nenndurchmesser" erscheinen. Nach den entsprechenden Eingaben in ein, zwei oder die drei Felder klicke ich auf ,,Suchen" und im Unterformular kommt eine Tabelle mit 6 Felder: Datum, Prüfer, Gerätetyp, Baulänge, Farbe, Nenndurchmesser.

Kann man so was bei Access machen? Ich habe früher in einer anderen Firmal mit einer DMS Software gearbeitet, bei dem man in der Suchmaske den Doktyp (z.B. Rechnungen) eingegeben hat, und dann automatisch die entsprechenden Felder des variablen Dokstamms erschienen, in diesem Fall ,,Datum", ,,Ersteller" und ,,Frist". Wenn man einen anderen Doktyp, z.B. ,,Angebot", gewählt hat, erschienen die Felder ,,Angebotsnummer", ,,Angebotsdatum" und ,,Kunde".

Bei mir sind keine Doktypen, sondern Gerätetypen, also analog. Kann man sowas bei Access verwirklichen?
Gruß,

Carlos

MzKlMu

#5
Hallo,
ZitatBin ich bis da richtig?
nein, so meine ich das nicht.

tblTyp
TypID   Typ
1   Typ1
2   Typ2
3   Typ3


tblMerkmale
MerkmalID  Merkmal     ZutreffendFürTyp
   1            Baulänge                 1 
   2            Material Turbine       1
   3            Gewicht                   1
   4            Farbe                      2
   5            Höhe                       2
   6            Material Zahnrad      2
   7            Nenndurchmesser    3
   8            Durchfluss               3
   9            Verbindungsart        3


tblZuordnung
ZuordnungID     GerätID    MerkmalID   Eintrag
       1                    1                 1            123
       2                    1                 2            234
       3                    1                 3            456
       4                    2                 4             Rot
usw.


Wenn Du jetzt in einem Formular das Gerät anzeigst und in einem verknüpften Unterformular die Merkmale so werden automatisch nur die zu Gerät passenden Merkmale angezeigt, da das Gerät einem bestimmten Typ zugeordnet ist. Das geht vollständig automatisch. Da braucht es keinen Buchstaben Code.
   
Gruß Klaus

DF6GL

Hallo,

ich denke, dass die beiden Tabellen zunächst in eine zusammengefasst gehören:

tblGeraeteTypen:

GTID   GT_TypBez   GT_Merkmal1        GT_Merkmal2       GT_Merkmal3
1        Typ1            Baulänge              Mat. Turbine         Gewicht 
2        Typ2            Farbe                   Höhe                    Mat. Zahnrad
3        Typ3            Nenndurchm.        Durchfluss            Verbindungsart


und eine weitere Tabelle tblGeraeteMerkmalsWerte mit den eigentlichen Werten :

GMWID       GM_GTID     GM_Wert1        GM_Wert2           GM_Wert3
1                    1                 45,5                   Keramik               150
2                    2                 rot                      25                    Messing
3                    3                 1/4                     60                     Klemmung

Hierbei sind Einheiten nicht berücksichtigt.

Ansonsten ist eine andere Tabellenkonstruktion ebenfalls denkbar:


tblMerkmale

MMID    MM_Typ   MM_Bezeichnung   MM_Wert    MM_Einheit  MM_Datentyp
1               1               Baulänge            45,5               mm              Double
2               1                Mat. Turbine       Keramik                                Text
3               1                Gewicht              150               kg                Double
4               2                 Farbe                 rot                                       Text
5               2                 Höhe                   25                mm             Double
6               2                 Mat. Zahnrad    Messing                                Text
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

MzKlMu

#7
Hallo,
@Franz
Ich kann Deine Version nicht ganz nachvollziehen. Besonders die Aufzählungsfelder nicht.
Man kann die Tabelle tblMerkmale meines Vorschlags um eine Spalte für die Einheit erweitern. Das Eintragsfeld wird ein Textfeld. Sollte man mal mit dem Eintrag rechnen müssen kann man immer noch konvertieren.

Ich würde daher meine Version bevorzugen, bis zum Beweis des Gegenteils.  ;D
Gruß Klaus

DF6GL

Hallo Klaus, 


wenn du meinen Post bist zum Ende liest, habe ich als Alternative eine normalisierte (entspr. Deinem Vorschlag) Version angeboten. (Zwinker-Smily)  .

Der erste Vorschlag sollte nur die Zusammenhänge verdeutlichen...
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

Carlos_C

Danke Klaus und Franz für Eure Tipps! Wie ich sehe, gibt es 2 Lösungsansätze für dieses Problem. Ich werde versuchen, einen von den beiden umzusetzen.
Gruß,

Carlos

MzKlMu

#10
Hallo,
der 1.Lösungsansatz von Franz ist nicht normalisiert (Aufzählungsfelder). Ich würde unbedingt den 2. Lösungsansatz (mein Vorschlag und Version 2 von Franz) verwenden.
Nach meiner Auffassung gibt es nur eine empfehlenswerte Lösung.
Bei Version1 hast Du auch wieder das Problem, dass Du Felder ausblenden musst.
Gruß Klaus

DF6GL

Hallo,

es stimmt schon, dass Vorschlag 1 nicht voll normalisiert (bis 3. Normalform) ist,  aber für die geschilderte Anforderung genügt er , denke ich voll auf, wenn Folgendes gilt:

Immer 3 Spalten (Tabellenfelder) mit Werten, lediglich die Interpretation (Benennung)  dieser Daten ist Typ-abhängig.

Auf die (noch) fehlende Info über den Datentyp in Vorschlag 1 habe ich ja hingewiesen, falls die Werte für weitere "Berechnungen" herangezogen werden müssen.

Für das Suchform werden für die Anzeige des Suchergebnisses die 3 (Werte-)Spalten als gebundene Textfelder aufgenommen und den  zugehörigen Bezeichnungsfeldern entspr. dem ausgewählten Typ die Merkmalbezeichnung aus  tblGeraeteTypen zugewiesen.

"Bei Version1 hast Du auch wieder das Problem, dass Du Felder ausblenden musst."

(Sorry für die fehlende Zitat-Kennzeichnung, bei meinem "Microsoft Edge" funktionieren die Tags nicht mehr...  ;-( )

Es müssen nur die Überschriftsbezeichungen entspr. den Typen gesetzt 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