Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: gromax am Juni 05, 2016, 21:31:23

Titel: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 05, 2016, 21:31:23
Hallo, liebe Access-Profis,

in meiner DB zur Bücherverwaltung versuche ich eine Suchmaske nach Titel, Kategorie und Autor zu basteln; leider habe ich keinen Plan!
Eigentlich wollte ich ein Formular entwerfen (vgl. frmMedienAuswahl), in dessen Formularkopf drei entsprechende Kombinationsfelder untergebracht sind und dem folgend sollte im Detailbereich die gefilterte Liste erscheinen.
Aber war mal wieder nichts! Die Detaildaten werden gar nicht gefiltert.

Vorab vielen Dank für Geduld und Unterstützung!

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 05, 2016, 22:03:00
Hallo gromax,
1. http://www.donkarl.com?FAQ4.36 (http://www.donkarl.com?FAQ4.36) kennst du?
2. Verrate uns die Datensatzherkunft der zu filternden Liste,
und vielleicht auch die DSh der Kombis.

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 08, 2016, 22:28:51
Hallo Ekkehard,

den Verweis auf Donkarls Seite habe ich umgesetzt; für eine Kontrolle (Bsp: Unter Kategorie "Landeskunde" eingeben, dann siehst Du die abhängigen Folgedaten unter "Titel" und "Autoren") wäre ich dankbar.
Die Kombifelder werden nach dem Aktualisieren des Kombi-Feldes 'cbm_Kategorie' ebenfalls wieder frisch ("Requery") befüllt (?Warum ist die erste Zeile bei den Autoren leer=weiß?), so dass die Filter untereinander kommunizieren.

Jetzt habe ich aber noch keine Idee, wie die unten angezeigte Liste entsprechend der Filter im oberen Bereich gefiltert angezeigt werden? Und das sollte eigentlich mein Ziel sein. Die diesen Daten zugrunde liegende Abfrage qry_Suche habe ich im unsichtbaren Feld [KAT_Name] mit dem Kriterium >>Wie "*" & [Formulare]![frm_MedienSuche]![cbm_Kategorie] & "*"<< zu filtern versucht, aber das funktioniert nicht.

Für weitere Unterstützung sage ich jetzt schon 'Danke'.

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 09, 2016, 15:09:55
Hallo gromax,
Anbei überarbeitete DB. Hätte sie gerne auch als .mdb dazu gepackt,
geht aber nicht wegen irgendwelcher neuen Features im Formular.
Folgende Änderungen habe ich gemacht:
1. In der Zuordnungstabelle das Feld "BUC_AutFS" in "BUC_FS" umbenannt (ist verständlicher).
2. In qry_Suche (heisst jetzt "qry_Suche_ed") die Gruppierung und den
Formularbezug entfernt, sowie zwei Felder ("AUT_PS" und "KAT_PS")
drangehängt; - werden zum Filtern des Formulars gebraucht.
3. Die Datenherkunft der Kombis "cbm_Titel" und "cbm_Autor" werden
jetzt per VBA gesetzt. Da steht jetzt in der 1. Spalte der PS drin.
(I.Ü. auch in "cbm_Kategorie"). Ausserdem ist das jetzt die 1. Spalte
die gebundene. Da gibt es dann auch kein "Wie * ..." mehr.
4. Ebenso der Filter auf das Formular. Dies beginnt schon bei Auswahl
einer Kategorie, dann des Titels und des Autors.
Beim "cbm_Autor" habe ich dir drei Möglichkeiten angelegt (schau dir
die Ereignisprozedur zum AfterUpdate an); - sind kommentiert.

Falls du das noch flexibler haben möchtest; - z.B. das nach Auswahl der
Kategorie auch schon die Autoren angezeigt werden sollen, und nicht
erst nach Auswahl des Titels, sollte es mit der Vorlage kein Problem sein,
das zu ergänzen bzw. zu ändern.

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 09, 2016, 20:08:37
Hallo Ekkehard,

Du bist klasse! Vielen Dank! Ich werde am Wochenende intensiver einsteigen und mich ggf. nochmals melden!
Auf den ersten Blick funktioniert alles genauso, wie ich es mir vorstelle! Klasse!

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 11, 2016, 17:47:09
Liebe Access-Profis, lieber Ekkehard,

Deine Tipps habe ich nun in meine DB eingebaut und ich habe Dein Angebot der drei Optionen zur Aktualisierung von 'cbm_Titel' per VBA wie folgt erweitert:
Private Sub cbm_Autor_AfterUpdate()
   
    'zeigt das ausgewählte (cbm_Titel) Buch des Autors
   If Not IsNull(cbm_Kategorie) And Not IsNull(cbm_Titel) Then
    Me.Filter = "AUT_PS = " & Me!cbm_Autor.Value & " AND BUC_PS = " & Me.cbm_Titel.Value
   End If
   
    'zeigt alle Bücher des Autors in der ausgewählten Kategorie
   If Not IsNull(cbm_Kategorie) And IsNull(cbm_Titel) Then
    Me.Filter = "AUT_PS = " & Me!cbm_Autor.Value & " AND KAT_PS = " & Me.cbm_Kategorie.Value
   End If
   
    'zeigt alle Bücher des Autors
   If IsNull(cbm_Kategorie) And IsNull(cbm_Titel) Then
    Me.Filter = "AUT_PS = " & Me!cbm_Autor.Value
   End If
   
    Me.FilterOn = True

End Sub

Es scheint zu funktionieren?!

Ein anderes Problem existiert aber nach wie vor:

Ich habe die Bücher [tblBuecher] in einer m:n-Beziehung [tblAutoren2Buecher] mit den Autoren [tblAutoren] verbunden, so dass ich zu einem Buch ggf. auch mehrere Autoren eingeben kann. Entgegen dem Rat der Verwendung von Mehrwert-Feldern habe ich diese Konstruktion eingebaut, doch erhalte ich jetzt für ein Buch mit drei Autoren drei Datensätze = 3 Bücher mit demselben Titel, aber jeweils einem anderen Autoren.
Kann ich dieses denn ähnlich einem Mehrwert-Feld auf einen Datensatz reduzieren und ggf. im Feld Autor den Eintrag >>Probe, Peter u.a.<< generieren?
Oder gibt es einen anderen Weg, bei mehreren Autoren trotzdem das Buch nur einmal anzuzeigen?

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 11, 2016, 19:50:04
Hallo gromax,
Schau ich mir morgen an.
gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 12, 2016, 20:09:44
Hallo gromax,
So, da bin ich.
Deine Bedingungen treffen manchmal alle drei nicht zu, so dass dann
nicht gefiltert wird.
Ich habe es jetzt folgendermassen geändert:
Private Sub cbm_Autor_AfterUpdate()

    'zeigt alle Bücher des Autors
    If IsNull(Me!cbm_Kategorie) And IsNull(Me!cbm_Titel) Then
        Me.Filter = "AUT_PS = " & Me!cbm_Autor.Value
    End If
   
    'zeigt das ausgewählte (cbm_Titel) Buch des Autors
    If Not IsNull(Me!cbm_Titel) Then
        Me.Filter = "AUT_PS = " & Me!cbm_Autor.Value & " AND BUC_PS = " & Me!cbm_Titel.Value
    End If

    'zeigt alle Bücher des Autors in der ausgewählten Kategorie
    If Not IsNull(Me!cbm_Kategorie) And IsNull(Me!cbm_Titel) Then
        Me.Filter = "AUT_PS = " & Me!cbm_Autor.Value & " AND KAT_PS = " & Me!cbm_Kategorie.Value
    End If

    Me.FilterOn = True

End Sub

Desweiteren habe ich noch folgende Änderungen vorgenommen:
1. "cdmFilterLöschen" umbenannt in "cdmFilterLoeschen"; - Umlaute sind
nicht so gut in Objektnamen.
2. die zugehörige Prozedur korrigiert; - da muss natürlich nicht
die RowSource zurückgesetzt werden, sondern nur der Inhalt
des Feldes.
3. Nach Auswahl einer Katagorie wird jetzt auch schon das Autor-Kombi
gefiltert.

Bezüglich Mehrfachanzeige der Titel mit mehreren Autoren bin ich noch nicht
weitergekommen. Diese Frage muss ich mal weiterreichen. In anliegender
Datei ist jetzt deshalb auch eine .mdb damit uns die SQL-Spezialisten hier dabei
weiterhelfen können.

@all
Im Prinzip muss ja nur diese
        SELECT B.BUC_PS,
             K.KAT_Name,
             B.BUC_Titel,
             A.AUT_NameGesamt,
             B.BUC_Kategorie,
             B.BUC_Untertitel,
             B.BUC_Auflage,
             B.BUC_Jahr,
             B.BUC_Inkludiert,
             B.BUC_MedienNummer,
             B.BUC_Mediennummer2,
             A.AUT_PS,
             K.KAT_PS
        FROM tblKategorien AS K
            INNER JOIN (tblBuecher AS B
                    LEFT JOIN (tblAutoren AS A
                            RIGHT JOIN tblAutoren2Buecher AS AB
                            ON A.AUT_PS = AB.AUT_FS)
                    ON B.BUC_PS = AB.BUC_FS)
            ON K.KAT_PS = B.KAT_FS
        ORDER BY B.BUC_Titel

Abfrage auf die BuchID (BUC_PS bzw. BUC_FS) gruppiert werden.
Folgendes habe ich dazu versucht:
        SELECT B.BUC_PS,
             K.KAT_Name,
             B.BUC_Titel,
             A.AUT_NameGesamt,
             B.BUC_Kategorie,
             B.BUC_Untertitel,
             B.BUC_Auflage,
             B.BUC_Jahr,
             B.BUC_Inkludiert,
             B.BUC_MedienNummer,
             B.BUC_Mediennummer2,
             A.AUT_PS,
             K.KAT_PS
        FROM tblKategorien AS K
            INNER JOIN (tblBuecher AS B
                    LEFT JOIN (tblAutoren AS A
                        RIGHT JOIN (
                            SELECT ABG.BUC_FS, First(ABG.AUT_FS) AS Autor
                            FROM tblAutoren2Buecher AS ABG
                            GROUP BY ABG.BUC_FS) AS AB
                        ON A.AUT_PS = AB.AUT_FS)
                    ON B.BUC_PS = AB.BUC_FS)
            ON K.KAT_PS = B.KAT_FS
        ORDER BY B.BUC_Titel

Will ich diese anzeigen kommt eine Parameterabfrage nach "AB.AUT_FS".
Verwende ich "ABG.AUT_FS" heisst es "Syntaxfehler in JOIN-Operation".

Ist wahrscheinlich relativ simpel, aber ich komm' nicht drauf.

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: MaggieMay am Juni 13, 2016, 23:49:52
Hallo,

die neue Abfrage hat kein Datenfeld namens AB.AUT_FS, du hast doch diese Spalte mit der First-Funktion zum Autor gemacht.
Ob es Sinn macht, darüber zu joinen, kann ich nicht beurteilen, da ich nicht alles gelesen habe.
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 14, 2016, 14:09:14
Hallo Maggie,
Klar, wenn man einen Alias vergibt muss man den dann auch verwenden, - danke.
Da hätte ich auch selber drauf kommen können  >:(
.
.
& "RIGHT JOIN (" _
                            & "SELECT ABG.BUC_FS, First(ABG.AUT_FS) [color=red]AS Autor[/color] " _
                            & "FROM tblAutoren2Buecher AS ABG " _
                            & "GROUP BY ABG.BUC_FS) AS AB " _
                    & "ON A.AUT_PS [color=red]= AB.Autor[/color]) " _
.
.

Macht auch das was sie soll, nämlich alle Titel auch mit mehreren Autoren
nur einmal anzuzeigen.
Allerdings werden diese Titel dann auf dem Formular nach Autorenauswahl
nicht mehr angezeigt (ausser beim ersten natürlich), was sich mir auch
logisch erschließt.
Wie muss ich das denn umstricken, dass die Titel gruppiert sind, aber
trotzdem alle Autoren angezeigt bzw. wählbar sind? Muss ich die Autoren
aus dieser Abfrage ganz rauslassen und sie in einer zweiten Abfrage
dazu joinen?
Für einen kleiner Hinweis in welche Richtung ich hier denken muss wäre
ich dankbar.

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 17, 2016, 09:58:19
Hallo Ekkehard, hallo MaggieMay,

leider habe ich erst heute Eure umfangreichen Bemühungen und Anregungen einsehen können, ich hatte diese Woche keine Zeit.
Ich werde die Vorschläge und Anregungen übernehmen und muss mich sicherlich nochmals melden.

Vielen Dank vorab!

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 24, 2016, 22:31:25
Hallo Ekkehard,

nicht wissend, ob Du noch die Muse findest, mir bei meinem Problem weiter unter die Arme zu greifen, habe ich versucht, Deine letzten Vorgaben in einer Abfrage per SQL einzubringen

         SELECT B.BUC_PS, K.KAT_Name, B.BUC_Titel, A.AUT_NameGesamt, B.BUC_Kategorie, B.BUC_Untertitel, B.BUC_Auflage, B.BUC_Jahr, B.BUC_Inkludiert, B.BUC_MedienNummer, B.BUC_Mediennummer2, A.AUT_PS, K.KAT_PS
FROM tblKategorien AS K INNER JOIN (tblBuecher AS B LEFT JOIN (tblAutoren AS A RIGHT JOIN (SELECT ABG.BUC_FS, First(ABG.AUT_FS) AS Autor
                            FROM tblAutoren2Buecher AS ABG
                            GROUP BY ABG.BUC_FS)  AS AB ON A.AUT_PS = AB.Autor) ON B.BUC_PS = AB.BUC_FS) ON K.KAT_PS = B.KAT_FS
ORDER BY B.BUC_Titel;


und die Abfrage funktioniert.
Wie kann ich denn mit meinem Problem weiterkommen? Es wird jetzt jedes Buch einmal - mit Nennung nur eines Autoren, auch wenn es mehrere Autoren hat - dargestellt; da sind wir ja schon einen Schritt weiter! Wie bekomme ich denn die anderen Autoren noch in dieses Feld?

Wenn Du oder andere Cracks Zeit und Ideen haben...?

Vielen Dank vorab
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: MaggieMay am Juni 24, 2016, 23:39:48
Hallo,
ZitatWie bekomme ich denn die anderen Autoren noch in dieses Feld?
das klingt für mich mal wieder ganz nach einer Einsatzmöglichkeit des Beispiels "Liste per SQL erstellen" aus dem dbWiki.
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 25, 2016, 12:40:52
Moin,
Ja, das könnte gehen. Ich werde das mal versuchen einzubauen.
Melde mich mit Ergebnissen  :) oder Fragen  :-[
gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 25, 2016, 14:05:04
Hallo,

@Maggie
Danke noch mal für den Hinweis, ist aber gar nicht nötig.
Alles viel einfacher.
Hatte mich vielleicht nicht deutlich ausgedrückt. Also die Anzeige der
Autoren im Kombi funzte schon, ist ja auch unabhängig von der Daten-
basis des Forms. Durch die Gruppierung derselben kann aber, logisch,
nur der Autor ausgewählt werden, der da als "First" ausgegeben wird.
Die Lösung: die gleiche Abfrage ungruppiert vorhalten, und diese der
RecordSource des Forms bei Auswahl im Kombi zuweisen.
Macht eine zusätzliche Abfrage und zwei Zeilen Code.
Private Sub cbm_Autor_AfterUpdate()

    Me.RecordSource = "qry_Suche_Alle"
.
.
End Sub

Private Sub cdmFilterLoeschen_Click()

    Me.RecordSource = "qry_Suche_Grup"
.
.

Hätte ich auch gleich drauf kommen können, - manchmal denkt man
einfach viel zu kompliziert  ;)

Angepasste DBs anbei.

gruss ekkehard

Edit:
Wegen Anhang bitte nächsten Post beachten!!
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 25, 2016, 14:51:24
Moin,
Ich glaube die beim letzten Post angehängte .accdb ist nicht korrekt.
Deshalb, vorsichtshalber noch mal.
gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 26, 2016, 17:49:45
Hallo Ekkehard,

super, dass Du dich so reinhängst; vielen Dank!
Deine bearbeitete DB habe ich angeschaut, aber da bleiben die folgende Fragen noch offen:
1. Wenn ich das Formular öffne und ohne Auswahl direkt das Kombifeld der Autoren aufrufe, dann erhalte ich keine Unikat-Liste, sondern manche Autoren sind mehrfach genannt.
2. Wenn ich nach Filterung über die Kategorien (z.B. "Landeskunde") die Filter wieder lösche, bleiben im Kombifeld 'Autor' die Autoren der Landeskunde-Titel stehen. Eigentlich müssten darin wieder alle Autoren in einer Unikat-Liste aufgeführt sein.
3. In der allgemeinen Liste sollten bei einem Titel alle Autoren in dem betreffenden Feld aufgeführt sein; hier ist es jeweils nur einer (Beispiel Titel "Es war ein Bahnhof ohne Rampe" hat allein vier Autoren)?

Wo setze ich denn dazu an?
Sollten die Felder über VBA gefüllt werden; wie bekomme ich denn die Unikat-Liste derAutoren zur Auswahl? Muss ich hier die DB anderst strukturien, zumal ich später ja auch eine Liste aller Bücher ausgeben möchte und darin sollten bei mehreren Autoren eines Buches dieses auch nur einmal aufgeführt werden.

Sorry! Ich hätte nicht gedacht, dass dieses so schwierig werden würde!

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 26, 2016, 22:11:35
Hallo gromax,
zu 1. und 2.
Habe ich angepasst. Dazu habe ich eine neue (gespeicherte) Abfrage
erstellt, die jetzt die Basis des Kombis "Autoren" ist, und auf die der
Button es wieder zurücksetzt. Das gleiche habe ich dann auch noch
für das Kombi "Titel" gemacht, denn da gab's das gleiche Problem.
Neue Version anbei.

zu 3.
Dazu brauchen wir eine zusätzliche Funktion (gibt es im Netz). Die
muss ich allerdings erst mal suchen, und versuchen einzubauen.
Andererseits kann das Formular-Feld dann nicht mehr an das Tabellen-
Feld gebunden werden. Dürfte aber kein Problem sein, da du ja in
diesem Formular keine neuen Bücher erfasst.
Melde mich zurück.

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 27, 2016, 12:22:53
Hallo gromax,
Zu 3. ist eingebaut.
Da wird jetzt ein bisschen mit der ControlSource-Eigenschaft des
Textfeldes "Autor" getrickst.
Nach Auswahl eines Titels wird dieser mit allen Autoren unten
angezeigt (Feld ist ungebunden). Wenn du dann einen der Autoren
im Kombi auswählst wird nur noch dieser angezeigt (Feld ist wieder
an das Tabellenfeld gebunden). Wenn du nach Auswahl des Autoren
trotzdem unten alle sehen willst, ist die Änderung im Code zum
Kombi (AfterUpdate) beschrieben.
Ich hoffe du beschäftigst dich auch mit den Vorgängen, die da jetzt
ablaufen und versuchst es zu verstehen. Kannst auch gerne noch
mal nachfragen.

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juni 28, 2016, 20:13:47
Hallo Ekkehard,

ich staune immer wieder, was die Experten in diesem Forum können; da ist ja alles möglich!
Großen Dank und meinen Respekt!
Auf den ersten Blick - der dauert jetzt schon 2 Stunden! - funktioniert alles, auch wenn ich noch nicht ganz dahinter gekommen bin. Ich muss da noch besser draufschauen, damit ich zumindest in Ansätzen die Funktionsweise kapiere.
Ich melde mich noch, wird vielleicht aber auch erst Wochenende!!

Vielen Dank nochmals!

Viele Grüße und eine gute Woche
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juni 28, 2016, 23:19:20
Hallo gromax,
Reine Übungsache, - und da sind hier einige noch um Einiges besser.
gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: JotGe am Juni 29, 2016, 23:59:22
Hallo gromax
wie mir scheint ist Dein Problem gelöst.
Ich habe dennoch mal ein alternatives Suchformular basierend auf Deiner Abfrage "qry_Suche_Alle" Deiner Beispieldatei 2003 (2007 kann ich nicht öffnen) beigefügt. Es durchsucht alle Felder der Abfrage basierend auf Deiner Eingabe. Dabei ist es unerheblich ob die Zeichenfolge am Anfang oder in der Mitte vorkommt.
Vieleicht kannst Du es verwenden.

Auf gutes Gelingen
Gruß
JG.
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juli 02, 2016, 18:54:56
Hallo Ekkehard, hallo Jonny,

Ihr habt mich wirklich bestens versorgt; nachdem ich die von Ekkehard in unermüdlicher Arbeit entwickelte Version der Suchmaske verinnerlicht habe [fast verstanden ;)], bietet Jonny eine über alle Eingabefelder agierende Suchmaske an, die mich hinsichtlich der finalen Wahl, welche nehme ich denn jetzt, doch sehr ins Zweifeln gebracht hat.

Bei Jonnys Suchmaske habe ich nun wieder das Problem, dass ein Buch mit drei Autoren gleichsam wie 3 Bücher mit gleichem Titel, aber unterschiedlichen Autoren dargestellt wird.
Dieses hat Ekkehard mit seiner Abfrage ('qry_Suche_Grup') und den angelegten Prozeduren super gelöst. Kann ich denn beide Versionen zusammenbringen?

Wenn ich der Suchmaske von Jonny die Abfrage von Ekkehard grundlege, so funktioniert diese nicht fehlerfrei: Der Autor 'Abele' wird mit nur einem Buch angezeigt, er müsste aber mit vier verschiedenen Titeln aufgeführt werden?!

Für eine Hilfe in dieser Richtung wäre ich dankbar.

Trotzdem, mit den Lösungen bin ich schon einen großen Schritt weiter.

Viele Grüße
gromax
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juli 03, 2016, 22:23:11
Hallo gromax,
Zitatdie mich hinsichtlich der finalen Wahl, welche nehme ich denn jetzt, doch sehr ins Zweifeln gebracht hat.
Bei Jonnys Suchmaske habe ich nun wieder das Problem, dass ein Buch mit drei Autoren gleichsam wie 3 Bücher mit gleichem Titel, aber unterschiedlichen Autoren dargestellt wird.
Ist ja eigentlich auch erwartungskonform. Es stellt sich die Frage, was du
denn mit der Auswahl im Weiteren vorhast.

ZitatKann ich denn beide Versionen zusammenbringen?
Im Prinzip sollte das auch mit der gruppierten Abfrage laufen. Dann hast du
aber wieder nur den einen Autor in der Liste, der durch die Gruppierung
als erster ausgegeben wird. Mehrzeilige Listenfelder gibt es leider nicht.

Ich habe dir das mal in das alte Formular eingebaut. Das läuft aber noch
nicht rund :-(.
Dann kommt da noch ein Fehler, wenn der Filter ein leeres RS erzeugt.
Schaue ich mir morgen nochmal an.

Da das Textfeld ein mir unverständliches Vehalten an den Tag gelegt
hat, musste ich da ein wenig tricksen (ist im Code dokumentiert).

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: gromax am Juli 05, 2016, 20:48:24
Hallo Ekkehard,

wieder mal 'Danke' für Deinen Einsatz; nicht dass Du sauer wirst, aber ich habe jetzt das Suchfeld ('frm_MedienSucheNeu02') von Jonny in meine DB übernommen. Ich denke, für die Anwender ist ein einziges Eingabefeld komfortabler als die drei Kombinationsfelder für den Titel, die Kategorie und den Autor.
Jetzt sieht man aber wieder die vier (bei vier Autoren eines Titels) Zeilen für ein Buch bzw. eben die drei, usw.! Damit könnte ich leben, wiewohl mir Deine Version hierzu besser gefällt, weil es einfach eleganter ist, wenn ein Buchtitel nur einmal angezeigt wird.
Auch habe ich Deine Abfrage ("qry_Suche_Grup") schon hinterlegt, dann wird jedes Buch einmal angezeigt, aber bei der Suchtexteingabe eines Autorennamens, der nachweislich mit mehreren Büchern (Bsp.: 'Abele') hinterlegt ist, wird dieser nur mit einem Buchtitel ausgefiltert anstatt mit allen seinen Büchern??
Wenn Du hierzu nochmals nachschauen könntest - das wäre super!

Viele Grüße
gromax

p.s.: Ich habe die andere Eingabemaske in der zip-Datei auch eingepflegt; vielleicht hat ja jemand noch Interesse?!
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juli 06, 2016, 15:34:56
Hallo gromax,
Zitataber ich habe jetzt das Suchfeld ('frm_MedienSucheNeu02') von Jonny in meine DB übernommen.
Kein Problem, deine Entscheidung.
ZitatJetzt sieht man aber wieder die vier (bei vier Autoren eines Titels) Zeilen für ein Buch bzw. eben die drei, usw.!
Bin ich in #23 schon drauf eingegangen. Ich perönlich finde das so nicht schlecht,
sehe ich doch gleich alle Autoren. Und das lässt sich in einem Listfeld nicht anders
darstellen.
Ich befürchte, dass du damit leben musst, denn bezüglich der gruppierten Abfrage
muss ich passen. Habe jetzt echt über drei Stunden davor gesessen, und komm nicht
drauf, wie man die ändern muss.

Vielleicht hilft uns einer der SQL-Spezialisten.
Ich erkläre das mal mit meinen Worten. (Falls die Forenleitung das lieber in einem
gesonderten Thread hätte, bitte verschieben.)
Datenlage:
Es gibt ein Buch mit 4 Autoren.
Von einem dieser Autoren gibt es 2 weitere Bücher.
Dies wird korrekt über eine n:m-Tabelle abgebildet.
Die folgende Abfrage soll als Datenherkunft eines Listcontrols dienen, das über ein
Textfeld gefiltert wird.
SELECT
        B.BUC_PS,
        K.KAT_Name,
        B.BUC_Titel,
        A.AUT_NameGesamt,
        B.BUC_Kategorie,
        B.BUC_Untertitel,
        B.BUC_Auflage,
        B.BUC_Jahr,
        B.BUC_Inkludiert,
        B.BUC_MedienNummer,
        B.BUC_Mediennummer2,
        A.AUT_PS, K.KAT_PS
FROM tblKategorien AS K
      INNER JOIN (tblBuecher AS B
          LEFT JOIN (tblAutoren AS A
              RIGHT JOIN
                  (SELECT ABG.BUC_FS,
                       First(ABG.AUT_FS) AS Autor
                   FROM tblAutoren2Buecher AS ABG
                   GROUP BY ABG.BUC_FS)  AS AB
              ON A.AUT_PS = AB.Autor)
          ON B.BUC_PS = AB.BUC_FS)
      ON K.KAT_PS = B.KAT_FS
ORDER BY B.BUC_Titel;

Damit ergibt sich:
Suche nach einem Buchtitel -> das Buch wird, korrekt, einmal angezeigt mit dem Autor,
der durch "First" bestimmt wird; - Absicht erfüllt.
Suche nach dem Autor -> es wird nur das Buch wie vor angezeigt; - Absicht alle drei
Bücher des Autoren anzuzeigen nicht erfüllt.
Nach meinem Verständnis macht die Abfrage natürlich das, was ihr aufgetragen, aber
nicht das was beabsichtigt  :(
Ich bin ziemlich sicher, dass es an der Gruppierung an dieser Stelle liegt.
Deshalb habe ich versucht diese "vorzulagern":
SELECT B.BUC_PS
FROM tblBuecher AS B
        INNER JOIN tblAutoren2Buecher AS AB
        ON B.BUC_PS = AB.BUC_FS
GROUP BY B.BUC_PS

(liefert die richtigen DS, Name: Abfrage1)
Sobald ich aber versuche die anderen Tabellen damit zu joinen,
SELECT B.BUC_PS,
           K.KAT_Name,
           B.BUC_Titel,
           B.BUC_Kategorie,
           B.BUC_Untertitel,
           B.BUC_Auflage,
           B.BUC_Jahr,
           B.BUC_Inkludiert,
           B.BUC_MedienNummer,
           B.BUC_Mediennummer2,
           K.KAT_PS
FROM (tblAutoren AS A
        INNER JOIN tblAutoren2Buecher AS AB
        ON A.AUT_PS = AB.AUT_FS)
                 INNER JOIN (tblKategorien AS K
                          INNER JOIN (Abfrage1 AS gQ
                                   INNER JOIN tblBuecher AS B
                                   ON gQ.BUC_PS = B.BUC_PS)
                          ON K.KAT_PS = B.KAT_FS)
                 ON AB.BUC_FS = B.BUC_PS

um an die benötigten Felder für die Anzeige zu kommen, geht die Gruppierung wieder flöten.

Wo liegt mein Denkfehler?

gruss ekkehard
Titel: Re: Suchmaske zur Buchverwaltung
Beitrag von: Beaker s.a. am Juli 06, 2016, 15:56:21
Hallo gromax,
Ich nochmal.
Nicht um das jetzt zu pushen oder meine Niederlage zu gestehen (muss ich
aber wohl erstmal), aber  bei der Kombifeld-Lösung gibt es diese Probleme
nicht. Ich habe das ja so angelegt, dass die Kombis auch unabhängig von
einander funktionieren. Will sagen, der Anwender muss auch da nur ein Feld
ausfüllen, und die Entscheidung wonach er suchen will hat er ja eh schon vorher
getroffen. Dann noch die Auswahl zwischen drei, beschrifteten, Feldern zu treffen
sollte eigentlich jedem gelingen.

gruss ekkehard