Neuigkeiten:

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

Mobiles Hauptmenü

Filter nach Wert in Zahlengruppe

Begonnen von TonyMotion, Januar 11, 2026, 07:06:02

⏪ vorheriges - nächstes ⏩

Knobbi38

Hallo Tony,

Zitat von: TonyMotion am Januar 21, 2026, 19:00:37Mir ist aber nicht klar, welche Funktion KomID in tblKommentar hat.
Es ist ja ein Autowert.
KomID ist eine eindeutige ID und der PrimaryKey für die tblKommentar. Darüber können die Kommentare eindeutig identifiziert werden. So etwas ist eigentlich Standard. Die Beziehung ist eine 1:n Beziehung mit der Tabelle tblTitel. Eine Tabelle mit Felder wie KomFK<Index>, also mit einem Index, widersprechen der normalisierten Form einer Tabelle und das ist eine Form, wie man das auflösen kann. Ein anderen Möglichkeit wäre eine n:m Beziehung, die ich aber hier nicht für notwendig halte. So etwas würde ich eher bei den Interpreten erwarten, da ein Titel mehrere Interpreten haben kann und ein Interpret auch für mehr als einen Titel in Betracht kommen kann.

Zitat von: TonyMotion am Januar 21, 2026, 19:00:37Wäre nett, wenn Du mir zeigen und/oder erklären könntest,
wie ein "richtiges" Datenmodell gestaltet werden muss.
Das kann ein Forum leider nicht leisten, da eine didaktische Heranführung an das Thema hier nicht möglich ist.
Zum Einstieg solltest du besser entsprechende Literatur zum Thema Datenbankmodellierung heranziehen, z. B.
Keine Angst  vor  Microsoft Access! von A.Stern

Knobbi38

TonyMotion

.
Hallo Knobbi38!
OK, jetzt hat jeder Kommentar einen eigenen Key.
Es sind jetzt aber erneut einige Titel bis zu 3mal vorhanden.
Welche Daten werden denn an die beteiligten Objekte weiter gegeben?
Hier bekomme ich die vorhandenen Daten mit Abfrage, Formular
und den Filter (Klassenmodule) irgendwie nicht zusammen.
Für gewöhnlich habe ich keine größeren Probleme
eine mehr oder weniger aufwendige DB zu erstellen.
Einiges, was ich brauche, suche ich mir aus div. Foren zusammen.
Und lege wohl die Regeln der DB-Modellierung etwas breiter aus.
Gänzlich unbekannt sind sie mir also nicht.
Dennoch wird aus mir wohl kein Access-Guru/ -Großmeister mehr werden.
Soviel Zeit und Ehrgeiz steht mir auch ohnehin nicht zur Verfügung.
Vielleicht kommst Du mir mit der Fertigstellung etwas entgegen.
Vielen Dank! Tony
.

Knobbi38

Hallo Tony,

ZitatEs sind jetzt aber erneut einige Titel bis zu 3mal vorhanden.
Ja klar, denn das ist ja die Datenlage. Für eine 1:n Beziehung wird i.d.R. eine Darstellung mit einem Unterformular gewählt. In diesem Fall erfolgt die Anzeige der Titel im Hauptformular und die Kommentare werden im Unterformular angezeigt, beide mit einer eigenen Abfrage. Die Verknüpfung erfolgt dann über die Verknüpfungseigenschaften des SubForm-Steuerelements, in diesem Fall über die TitelID und den dazu passenden Fremdschlüssel TitelFK in der Tabelle tblKommentar.

Knobbi38

TonyMotion

.
Hallo Knobbi38!
Dein Vorschlag mit 2 Forms und 2 Abfragen kommt mir irgendwie bekannt vor.
Sowas ähnliches habe ich vor ein paar Jahren schon mal versucht.
Kann mich aber nicht mehr so genau daran erinnern.
Eines weiss ich noch: dass der Filter nur das Formular berücksichtigt hat,
welches sich im Vordergrund befindet.
Filtern von Unterformular/Unterabfrage (mit Kommentar) war nicht möglich.
Hatte zwar eine Lösung gefunden. War aber damit nicht zufrieden.
Um mir das nochmal anzuschauen, hole ich meinen alten PC aus dem Ruhestand.
Hoffentlich finde ich die Datei noch.
Außerdem wage ich mal einen neuen Versuch.
Gibt es denn vielleicht mit VBA nicht doch eine Möglichkeit,
die entsprechende Prozedur und/oder Klassenmodule anzupassen?
Könnte das nicht der direkteste Weg sein?
Hier mal drei von vielen meiner vergeblichen Versuchen:
'    .FilterAdd Me.kmbKommentar, "KomFK", vbLong, _
    "SELECT Ko.KomID, Ko.KomName FROM atblKommentar AS Ko WHERE Ko.KomID IN (" _
    & "SELECT Tt.KomFK FROM abfrTitel2 AS Tt WHERE Tt.KomFK LIKE '*" & Me.kmbKommentar & "*');"
Laufzeitfehler 3464: Datentypenkonflikt in Kriterienausdruck.

'    .FilterAdd Me.kmbKommentar, "KomID  Like '*t.KomFK*'", vbLong, _
    "SELECT Ko.KomID, Ko.KommentarName FROM atblKommentar AS Ko WHERE Ko.KomID in(" _
    & "SELECT "T.KomID LIKE '* & Me.kmbKommentar & *'" FROM abfrTitel2 AS T@);"
Fehler beim Kompilieren: erwartet Anweisungsende: & "SELECT "T. (T wird markiert)

'    .FilterAdd Me.kmbKommentar, "KomID", vbLong, _
    "SELECT T.KomID FROM abfrTitel2 AS T WHERE T.KomID IN (" _
    & "SELECT Tk.TitelFK FROM tblKommentar2 AS Tk INNER JOIN atblKommentar AS Ko " _
    & "ON Tk.KomFK = Ko.KomID " _
    & "WHERE ko.KomID = " & Me.kmbKommentar & ");"
Syntaxfehler in Abfrageausdruck: ...IN (SELECT Tk.TitelFK FROM...
Vielen Dank für Deine Unterstützung!
Gruß! Tony

PS: Bin Deiner Literaturempfehlung gefolgt und
    habe das Buch bestellt
.

Knobbi38

Hallo Tony,

das Datenmodell ist ja so noch nicht vollständig, z.B. gibt es noch keine n:m Beziehung bezügl. der Titel/Interpreten.
Der Vorschlag mit einem HF und einem UF dient eher zum Erfassen/Ändern von Datenbankeinträgen. Zum Suchen oder für eine Übersicht ist vielleicht das Formular aus deinem 1. Beitrag ansprechender (nur Readonly!).

Ich schau mir das bei Gelegenheit nochmal genauer an und mache dann mal ein kl. Beispiel (nur für Kommentare) fertig.

Knobbi38

TonyMotion

.
Nochmal Hallo Knobbi38!
Genau das ist es...
Das Endlosformular soll NUR das Filterergebnis aus den Kombis anzeigen.
Für den Eintrag eines neuen Titel wird ein Einzelformular geöffnet.
Weitere Formulare gibt es für Korrektur und Löschen.
Das ist aber alles in einer anderen Datei schon erledigt.
Vielleicht habe ich mich da auch ein bisschen schwierig ausgedrückt.
Nochmals Vielen Dank für Deine Geduld und Hilfsbereitschaft!
Gruß! Tony
.