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.
Hallo,
Zitat,,Merkmal1Typ1", ,,Merkmal2Typ1" und ,,Merkmal3Typ1"
hast Du diese Felder wirklich in der Tabelle ?
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.
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.
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?
Hallo,
ZitatBin ich bis da richtig?
nein, so meine ich das nicht.
tblTypTypID Typ
1 Typ1
2 Typ2
3 Typ3tblMerkmaleMerkmalID 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
tblZuordnungZuordnungID 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.
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
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
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...
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.
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.
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.