Neuigkeiten:

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

Mobiles Hauptmenü

Suchmaske zur Buchverwaltung

Begonnen von gromax, Juni 05, 2016, 21:31:23

⏪ vorheriges - nächstes ⏩

Beaker s.a.

Moin,
Ich glaube die beim letzten Post angehängte .accdb ist nicht korrekt.
Deshalb, vorsichtshalber noch mal.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

gromax

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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

gromax

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

Beaker s.a.

Hallo gromax,
Reine Übungsache, - und da sind hier einige noch um Einiges besser.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

JotGe

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.
Auf gutes Gelingen

Gruß
JG.

gromax

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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

gromax

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?!

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)