Access-o-Mania

Access-Forum => Tabelle/Abfrage => Thema gestartet von: Carl am Juni 11, 2018, 18:17:21

Titel: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 18:17:21
Ich versuche vielleicht doch mal, das mit der Zuordnungstabelle hin zu kriegen. Es ist für ich ziemlich undurchsichtig.

Ziel ist, den Wust um die Tabelle tblBatterien los zu werden.

tblWorkorder enthält Probanden
tblBatterien enthält Batterien

Jeder Proband kann verschiedenen Batterien zugeordnet werden.

Ich habe jetzt die Zuordnungstabelle ztblBatterien angelegt, aber es lassen sich irgendwie keine n:m-Beziehungen herstellen. Es bleibt immer bei 1:n. Wie kann man das einrichten?

Ich habe das mit diesen Beziehungen nicht verstanden.

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 11, 2018, 18:27:47
Hallo,
das ist schon richtig so. Eine n:m Beziehung sind zwei 1:n Beziehungen.
Wenn Du die andere Linie anklickst erhältst Du das gleiche Bild noch mal mit den entsprechenden Feldnamen.

Das die 12 Batteriezugeordnete Felder mitsamt den verknüpften Tabellen dann entfallken weißt Du ?

Du solltest Dich endlich mal dazu durchringen die ID Felder vernüftig (zur Tabelle) zu benennen. Du blickst Doch da nicht mehr durch wenn Du das nicht machst.

Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 18:50:27
Das die 12 Batteriezugeordnete Felder mitsamt den verknüpften Tabellen dann entfallken weißt Du ?

Du solltest Dich endlich mal dazu durchringen die ID Felder vernüftig (zur Tabelle) zu benennen. Du blickst Doch da nicht mehr durch wenn Du das nicht machst.

Ja, die Felder sollen entfallen.

Ich kann die ID's nicht mehr umbenennen, weil sich anderer VBA darauf bezieht, der nicht automatisch aktualisiert wird und ich sonst Salat bekomme. Ich machs aber beim nächsten Projekt gleich von Anfang an so.

Jetzt habe ich das Problem

Das Formular zum Zuordnen der Batterie
HF basiert auf tblWorkorder
UFOendlos basiert auf tblBatterie
beide verknüpft über die ID
im UFOendlos ein Kombifeld, das die Batterien zuordnen kann.

Wenn ich das HF aufrufe und im Kombifeld ein paar werte aussuche, speichert Access diese Auswahl in der Datei "tblBatterien", was aber sinnlos ist, weil ich ja keine neuen Batterien erzeugen möchte. (die dann im Kombifeld als Optionen auftauchen)

Was könnte ich falsch gemacht haben?

Carl

Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 11, 2018, 18:57:03
Hallo,
Zitat
UFOendlos basiert auf tblBatterie
beide verknüpft über die ID
das ist ja auch falsch. Das Ufo muss auf der Tabelle "ztblBatterien" (also der Zwischentabelle) bassieren. Verknüpft wird über die ID und IDWO_F.
Das Kombi bassiert auf der Tabelle "tblBatterien" und muss an das Feld "IDBAT_F" gebunden werden. Die erste Spalte des Kombis muss die ID der Tabelle "tblBatterien" anzeigen und weitere Spalten. Die ID Spalte wird mit Spaltenbreite 0cm ausgeblendet.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 19:25:11
ach, alles klar, okay. Mein erster Erfolg bei Zuordnungstabellen!

Was muss man denn machen, wenn man keine Batterie doppelt dem Probanden zuordnen lassen möchte?

Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 19:28:45
Und jetzt habe ich folgendes Problem:

Ich habe ein HF_alles, das ein UFO_alles enthält, welches alle Probanden anzeigt. Dies lässt sich filtern.

Im HF_alles befindet sich ein Kombifeld, das schon die Batterien anzeigt.

Welches Feld soll man in dem UFO eintragen, damit das Formular weiß, welche Batterien alle dem Probanden zugeordnet sind?

Und wie kann man das Kombi ansteuern, das es filtert?

Carl



Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 11, 2018, 19:28:49
Hallo,
lege über IDBAT_F und IDWO_F einen eindeutigen zusammengesetzten Index an. Dann wird das auf Tabellenebene unüberwindbar verhindert.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 11, 2018, 19:32:32
Hallo,
Dein weiteres Problem verstehe ich nicht.
Zitat
Im HF_alles befindet sich ein Kombifeld, das schon die Batterien anzeigt.
Im HF macht ein solches Kombifld keinen Sinn. Das HF zeigt die Daten des Probanten, sonst nix.
Zitat
Welches Feld soll man in dem UFO eintragen, damit das Formular weiß, welche Batterien alle dem Probanden zugeordnet sind?
Das erfolgt ausschließlich über die Verknüpfung, vollkommen automatisch. Welche Felder da zu verwenden sind, habe ich oben schon geschrieben.
Zitat von: KlMzMu
Verknüpft wird über die ID und IDWO_F.
Das muss auch kein Kombi gefiltert werden, was willst Du da filtern ?
Das Kombi wählt die zutreffenden Batterien aus und fertig.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 20:12:45
Hallo,
lege über IDBAT_F und IDWO_F einen eindeutigen zusammengesetzten Index an. Dann wird das auf Tabellenebene unüberwindbar verhindert.

Das hat geklappt. Danke

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 20:20:39
Nein, ich meinte das anders.

Es gibt ein weiteres, anderes HF-UFO-Formular, das der Übersicht dient. Das UFO zeigt ALLE Probanden an und lässt sich mit Kombis filtern.

Die Aufgabe ist jetzt, das UFO zu filtern nach den Batterien.

Im HF habe ich jetzt ein Kombifeld, das schon die Batterien zeigt. Ich möchte jetzt, das der Inhalt vom UFO immer nach der im Kombi angeklickten Batterie gefiltert wird.

Welches Feld soll ich in diesem UFO einfügen, damit gefiltert werden kann? Es sind ja pro Proband mehrere Batterien zuordenbar.

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 11, 2018, 21:05:56
Also wenn ich beispielsweise nach allen DS filtern möchte, denen die Batterie mit der ID=1 zugeordnet ist. Soll man dazu eine Abfrage entsprechend gestalten und diese mit dem Kombi ansteuern?

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 12, 2018, 09:10:06
Hallo,
das würde ich völlig anders lösen.
Lege ein extra Hafo an mit den Batterien als Datenquelle.
In einem Ufo nimmst Du die Zwischentabelle und die Probantentabelle auf.
Verknüpft wird Hafo und Ufo über die ID (Batterie) und IDBAT_F.
Dann werden im Ufo automatisch alle zu einer Batterie gehörenden Probanten angezeigt.
Bei Bedarf kann man mit einem ungebunden Listenfeld im Hafo die Batterien filtern.
Oder Du blätterst einfach duch die Batterien, sind ja nur 12.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 12, 2018, 10:41:00
An das bereits bestehende Hauptformular haben sich die Mitarbeiter aber schon gewöhnt. Und es soll auch schneller zwischen Filtern hin- und her gewechselt werden. Die arbeiten mit diesem Formular und schränken die Ansicht mit Filtern ein, wobei die Batterie einer dieser Filter sein soll.

Siehst Du eine Möglichkeit, das UFO über ein Kombifeld zu filtern wie oben beschrieben?

Ich weiß zum Beispiel nicht, welches Feld ich in das UFO einfügen soll, auf das dann das Kombifeld zum filtern zugreifen kann. Weil ja jeder Proband mehreren Batterien zugeordnet sein kann.

Von der Lösung über mehrfach-Wert-Felder hattest Du ja in einem anderen Thread abgeraten wegen Instabilität bei vielen Datensätzen oder viel traffic.

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 12, 2018, 11:42:47
Hallo,
es ist keine besonders gute Idee alles mit einem Formular erledigen zu wollen.
Um auf Deinen Wunsch zurückzukommen, wenn Du das Ufo auf eine Batterie filterst, so muss auch das Hafo gefiltert werden, denn es darf dann nur die Probanten anzeigen die auch zu der Batterie passen. Im Hafo gibt es aber kein Feld für die Batterie. Das bedeutet, in das Hafo muss auch die Zwischentabellle aufgenommen werden damit Du über das FS Feld zur Batterie filtern kannst. Gleichzeitig soll aber Hafo und Ufo dazu dienen die Batterien zuzuordnen.
Das ist mehr als verwirrend und letztendlich unpraktikabel.

Jedes Formular hat seine Aufgabe.

Mache ein kleines Formular mit Schaltflächen, das das Formular startet das für die Augabe gemacht wurde.
Die Mitarbeiter werden sich da schnell daran gewöhnen.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 12, 2018, 12:33:31
Im Prinzip könnte man eine Batterie 0 anlegen und dann das HAFO darauf aufsetzen.

Oder mal eine andere Idee:
Wäre folgende Lösung denkbar:

Kann man in dieser Abfrage das so einrichten, dass sie auf eine in einem Kombi im HF vorgenommene Auswahl zurück greift und dann die Datensätze auf den jeweiligen ID-Wert eingrenzt?

Das UFO basiert auf einer Abfrage "abfworkorder"

SELECT tblworkorder.ID, tblworkorder.WOName, tblworkorder.WOBeschreibungKurz, tblworkorder.WOBeschreibungMemo, tblworkorder.WOBereich, tblBereiche.Bereich AS WOBereichUC, tblworkorder.WOKernkompetenz, tblKernkompetenz.Kernkompetenz AS WOKernkompetenzUC, tblworkorder.WOStufe, tblStufen.Stufe AS WOStufeUC, tblworkorder.WOAutor, tblworkorder.WOStaffel, tblAutoren.Autor AS WOAutorUC, tblworkorder.WOZeitstempel, tblworkorder.WOStandRohversion, tblworkorder.WOOrdnername, (DLookUp("Hilfstexte","tblHilfstexte","ID=1"))+([WOOrdnername]) AS Pfad1, (DLookUp("Hilfstexte","tblHilfstexte","ID=3")) AS Pfad0, (DLookUp("Hilfstexte","tblHilfstexte","ID=1"))+([WOOrdnername])+"\"+"Manual.docx" AS PfadManual, (DLookUp("Hilfstexte","tblHilfstexte","ID=1"))+([WOOrdnername])+"\"+"Instruktion.docx" AS PfadInstruktion, (DLookUp("Hilfstexte","tblHilfstexte","ID=1"))+([WOOrdnername])+"\"+"Auswertung.docx" AS PfadAuswertung, (DLookUp("Hilfstexte","tblHilfstexte","ID=1"))+([WOOrdnername])+"\"+"ExcelSheets.xlsm" AS PfadSheets, tblworkorder.Obs01, tblworkorder.Obs02, tblworkorder.Obs03, tblworkorder.Obs04, tblworkorder.Obs05, tblworkorder.ObsTime, tblworkorder.ausblenden, tblworkorder.ObsTimeVorgabe, tblStandRohversion.Rohversion, tblworkorder.WOParallelgruppe, IIf([WOParallelgruppe]=1,"","I") AS WOParallelgruppeIndex, tblparallelgruppe.parallelgruppeName, tblworkorder.istdirektaufgabe
FROM tblparallelgruppe INNER JOIN (tblStufen INNER JOIN (tblBereiche INNER JOIN (tblKernkompetenz INNER JOIN (tblStandRohversion INNER JOIN (tblAutoren INNER JOIN tblworkorder ON tblAutoren.ID = tblworkorder.WOAutor) ON tblStandRohversion.ID = tblworkorder.WOStandRohversion) ON tblKernkompetenz.ID = tblworkorder.WOKernkompetenz) ON tblBereiche.ID = tblworkorder.WOBereich) ON tblStufen.ID = tblworkorder.WOStufe) ON tblparallelgruppe.ID = tblworkorder.WOParallelgruppe
WHERE (((tblworkorder.ausblenden)=False) AND ((tblworkorder.istdirektaufgabe) Not In (True)));
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 12, 2018, 12:41:16
Hallo,
Zitat
Im Prinzip könnte man eine Batterie 0 anlegen und dann das HAFO darauf aufsetzen.
Sorry, aber wie soll das gehen ?
Eine Batterie 0 hätte ja keine Zuordnung, also gäbe es im Ufo keine Datensätze, was willst Du da im Ufo filtern ?

Ansonsten habe ich da den Überblick verloren, was Du da krampfhaft machen willst, nur um Formulare zu vermeiden.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 12, 2018, 13:44:37
Eine Batterie 0 könnte allen Datensätzen zugeordnet werden. Wenn ich dann nach null filtere sieht es aus wie ungefiltert.

Was ich meine: Ist es möglich, die ABFRAGE zu filtern, nicht das Formular?

Geht das beispielsweise, dass man sich in der Abfrage auf einen Wert bezieht, der in einem Kombifeld im Formular gewählt wurde?

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 12, 2018, 16:57:10
Hallo,
Zitat
Was ich meine: Ist es möglich, die ABFRAGE zu filtern, nicht das Formular?
nein, wenn die Abfrage gefiltert wird ist auch das Formular gefiltert.
Und wenn Du eine extra Abfrage hast, brauchst Du auch wieder ein Formular dazu.

Da ich jetzt aber wie gesagt den Überblick verloren habe, muss ich passen.
Oder lade mal eine Beispieldb hier hoch und beschreibe genau was Du vorhast
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 12, 2018, 17:34:06
Hallo,
das würde ich völlig anders lösen.
Lege ein extra Hafo an mit den Batterien als Datenquelle.
In einem Ufo nimmst Du die Zwischentabelle und die Probantentabelle auf.
Verknüpft wird Hafo und Ufo über die ID (Batterie) und IDBAT_F.
Dann werden im Ufo automatisch alle zu einer Batterie gehörenden Probanten angezeigt.
Bei Bedarf kann man mit einem ungebunden Listenfeld im Hafo die Batterien filtern.
Oder Du blätterst einfach duch die Batterien, sind ja nur 12.

Nein, das geht aus mehreren Gründen nicht. Mein bestehendes Hauptformular muss genutzt werden. :-(

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 12, 2018, 17:37:11
Vielen Dank Klaus, zunächst mal für die Hilfe mit der Zwischentabelle, das wird mir viel nützen auch in Zukunft.

Ich versuche es noch mal so zu überdenken:

Kann man mit einem Kombifeld einen einzelnen Parameter in einer Abfrage auswechseln? Dann könnte man doch auf z.B. die Abfrage auf Batterie x einschränken lassen.

Zum Beispiel in der Abfrage als Kriterium "Feld IDBAT_F enthält [Formulare]![HF]![KombiBatterien]" oder sowas

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 12, 2018, 18:11:53
Hallo,
Zitat
Zum Beispiel in der Abfrage als Kriterium "Feld IDBAT_F enthält
Aber dieses Feld ist doch in der Datenherkunft für das Hafo gar nicht enthalten.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 12, 2018, 18:43:13
Es fällt mir sehr schwer, das vorzustellen.

Ich würde versuchen, zwei Abfragen mit einander zu kombinieren.

(i) Das UFO basiert auf der Abfrage der Probanden (tblworkorder) und zeigt viele DS, die mit mehreren Kombifeldern gefiltert werden können. (Das Hafo hat bislang gar keine Herkunft)
(ii) Die DS im UFO sollen nun zusätzlich nach jener Batterie gefiltert werden, die in einem Kombifeld im Hafo gewählt wurde. (siehe roter Pfeil)
(iii) Jeder DS kann aber mehreren Batterien zugeordnet worden sein, nämlich in der Zwischentabelle.

Mit fehlt ein Feld im UFO mit einem eindeutigen Wert, um konventionell nach diesem filtern zu können.

Vielleicht kann man ein solches Feld in der Abfrage des UFOS ansteuern, in dem man in dieser Abfrage auf den gewählten Wert im Kombifeld zurück greift. Die Abfrage müsste dann wissen, was im Kombifeld gewählt wurde.

Carl


Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 13, 2018, 13:14:07
Also ich habe jetzt sehr viel probiert mit zwei Abfragen aber ich kriege es nicht hin. Ich glaube man könnte es schaffen, wenn jeder Proband nur einer Batterie zugeordnet wird, weil es dann im UFO einen eindeutigen Wert geben kann.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 13, 2018, 19:23:12
Hallo,
Deine krampfhaften Versuche ein Formular vermeiden zu wollen sind Krampf.
Zitat
Ich glaube man könnte es schaffen, wenn jeder Proband nur einer Batterie zugeordnet wird
Nein, das kann nicht funktionieren. Denn jeder Probant hat ja mehrere Batterien. Das Ufo würde dann nur einen Datensatz zeigen und im Hafo hättest Du die Probanten mehrfach, nämlich für jede Batteriezuordnung 1x.
Ich hatte ja schon mal einen Vorschlag (extra Formular) gemacht, aber das hast Du ja abgelehnt.
Zitat
Nein, das geht aus mehreren Gründen nicht. Mein bestehendes Hauptformular muss genutzt werden. :-(
Gibt es da einen sachlichen Grund, oder nur weil es die Anwender nicht mögen ?

Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 13, 2018, 19:40:11
Ich habs hin bekommen, score! score! Mit einer Kombination aus Abfragen. Man kann in Abfragen andere Abfragen einbinden.

Vielen Dank für Deine Hilfe.

Wahrscheinlich hatte ich Dir das Problem nicht ausreichend korrekt beschrieben.

Jetzt habe ich mit dem Anlegen der Probanden noch das Problem, dass diese nicht automatisch in der Zwischentabelle einen Eintrag bekommen. Ich verwende zum Anlegen ein eigenes Formular, das auch gleich auf richtige Schreibung kontrolliert und Ordner anlegt. Wahrscheinlich muss da eine Routine rein, dass diese einen Eintrag in der Zwischentabelle anlegt mit dem Wert 9, der für eine allgemeine und unsichtbare Batterie steht, die jedem Datensatz zugeordnet wird.

Carl

Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 13, 2018, 20:08:27
Vielen Dank nochmal, das war meine erste Lösung mit Zwischentabelle. :-)

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 14, 2018, 10:26:39
hier mein Lösungsversuch
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 14, 2018, 10:39:47
Hallo,
die Verknüpfung der beiden IDs ist völliger Unsinn.
Dein ursprüngliches Beziehungsbild aus dem 1.Beitrag war richtig. Warum nimmst Du das nicht.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 14, 2018, 15:40:49
Die habe ich ja so gelassen.

Mein letztes Bild zeigt die Abfrage. Die Beziehung ist auf Abfrage-Ebene.

Ich verstehe die zusammenhänge nicht vollständig und schaue immer, dass es funktioniert. Und bis auf das automatische Anlagen des Datensatzes in der Zwischentabelle funktioniert es ja.

Übrigens bin ich froh das mit der Zwischentabelle hin bekommen zu haben, damit bin ich ja schon mal ein ganzes Stück normalisierter.

Carl
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: MzKlMu am Juni 14, 2018, 16:07:11
Hallo,
es bleibt dabei, die Verknüpfung über die beiden IDs ist völliger Unsinn.
Zwischen den beiden IDs kann es keinen Zusammenhang geben.
Wenn das funktioniert, so ist das Zufall.
Die Verknüpfung muss von der ID (tblWorkorder) zu IDWO_F gehen wie es im Beziehungsfenster ist.
Mit dem automatischen Anlegen des Datensatzes in der Zwischentabelle muss das Feld IDWO_F und IDBA_F gefüllt werden, wie ich es in Deinem anderen Thema beschrieben habe. Ergänze dort noch das Speichern, wie von Ekkehard vorgeschlagen.
Titel: Re: Filtern bei Zuordnungstabelle
Beitrag von: Carl am Juni 15, 2018, 09:46:04
Das habe ich gemacht und die Formulare und Tabellen funktionieren tadellos. Ich bin Dir sehr dankbar für Deine Hilfe bei meiner ersten Zwischentabelle, die ich allein nicht hinbekommen habe. :-)

Carl