Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Carlos_C am August 04, 2015, 09:05:29

Titel: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: Carlos_C am August 04, 2015, 09:05:29
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.
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: MzKlMu am August 04, 2015, 09:08:23
Hallo,
Zitat,,Merkmal1Typ1", ,,Merkmal2Typ1" und ,,Merkmal3Typ1"
hast Du diese Felder wirklich in der Tabelle ?
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: Carlos_C am August 04, 2015, 10:28:16
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.
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: MzKlMu am August 04, 2015, 10:56:20
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.
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: Carlos_C am August 04, 2015, 13:47:50
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?
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: MzKlMu am August 04, 2015, 14:15:37
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.
   
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: DF6GL am August 04, 2015, 14:34:48
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
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: MzKlMu am August 04, 2015, 14:57:36
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
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: DF6GL am August 04, 2015, 15:09:31
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...
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: Carlos_C am August 05, 2015, 07:34:23
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.
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: MzKlMu am August 05, 2015, 07:51:45
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.
Titel: Re: Bestimmte Felder einblenden nach Eingabe in Kombinationsfeld
Beitrag von: DF6GL am August 05, 2015, 09:38:51
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.