Seite 1 von 1
Suchabfrage über mehrere Felder
Verfasst: Mi 26. Jun 2013, 20:11
von ATK
Hallo zusammen!
Ich möchte gerne eine Suchabfrage über min. zwei Felder machen, die jedoch unterschiedlich sind. Diese Abfrage soll am Ende noch editierbar sein...
Ausgangspunkt ist eine Art Adresstabelle mit Namen, Vornamen, Geburtsdatum etc... . Im Moment kann ich jeweils ein Feld einer Filtertabelle belegen und anschließend die Ausgangstabelle nach dem eingegebenen Suchstring oder eingegebenes komplettes Datum in der Filtertabelle filtern lassen.
Bei der Verwendung der Suchabfrage der Beispieldatenbank des Base-Handbuches (Suchen und Filtern) vom Robert G. funktioniert es wie ein Traum... Es werden die einzelnen Felder ausgelesen und anschließend in den Feldern gesucht.
Und jetzt kommt der Haken: um die Datenbank mehrbenutzerfähig zu machen, habe ich sie auf mySQL ausgelagert. Alles funktioniert, bis auf die traumhafte Suchabfrage. Ich denke, es am Makro und da kenne ich mich leider überhaupt nicht aus.
Könnte mir da jemand aus dem Forum bitte weiterhelfen? Vielen Dank...
Gruß
Arne
Re: Suchabfrage über mehrere Felder
Verfasst: Mi 26. Jun 2013, 21:47
von RobertG
Hallo Arne,
vielleicht schreibst Du einmal, welches von den in dem Beispiel liegenden Formularen so funktioniert, wie Du es brauchst. Dann werde ich hier mit MySQL einmal testen.
Die Suchfunktionen sind natürlich so, wie ich sie mit einer Filtertabelle geschrieben habe, erst einmal auf den Einbenutzerbetrieb gemünzt. Die Tabellen, in die die Suchbegriffe eingetragen werden, dürfen also für die anderen Benutzer mit dem Inhalt nicht existieren. Das geht dann nur mit einer temporären Tabelle, die nur für den eigenen Verbindungsthread nutzbar ist. Müsste also eine Tabelle Sein, die beim Start der MySQL-Verbindung erstellt wird und dann genauso vorhanden ist wie die Tabelle "Filter" im Einzelbetrieb.
Gruß
Robert
Re: Suchabfrage über mehrere Felder
Verfasst: Mi 26. Jun 2013, 22:21
von ATK
Hallo Robert,
RobertG hat geschrieben: ...
vielleicht schreibst Du einmal, welches von den in dem Beispiel liegenden Formularen so funktioniert, wie Du es brauchst. Dann werde ich hier mit MySQL einmal testen.
Brauchen täte ich die Funktion wie im Formular "Suchabfrage" der Beispieldatenbank "Suchen_und_Filtern". Das wäre perfekt, da das Ergebnis der Abfrage weiterhin editierbar ist und man die Möglichkeit hat, Daten zu verändern, löschen oder hinzuzufügen.
RobertG hat geschrieben:Die Tabellen, in die die Suchbegriffe eingetragen werden, dürfen also für die anderen Benutzer mit dem Inhalt nicht existieren. Das geht dann nur mit einer temporären Tabelle, die nur für den eigenen Verbindungsthread nutzbar ist. Müsste also eine Tabelle Sein, die beim Start der MySQL-Verbindung erstellt wird und dann genauso vorg´handen ist wie die Tabelle "Filter" im Einzelbetrieb.
Das heißt also generell, das ich bei MySQL so viele verschiedene Benutzer für die Datenbank hinzufügen / anlegen muss, wie daran arbeiten müssen. Bisher hatte ich es auf einen "Sammelbenutzer" mit dem gleichen Kennwort beschränkt, die sich dann von unterschiedlichen Rechnern aus auf der Datenbank angemeldet hatten.
Grüße
Arne
Re: Suchabfrage über mehrere Felder
Verfasst: Do 27. Jun 2013, 09:20
von RobertG
Hallo Arne,
ATK hat geschrieben:
RobertG hat geschrieben:Die Tabellen, in die die Suchbegriffe eingetragen werden, dürfen also für die anderen Benutzer mit dem Inhalt nicht existieren. Das geht dann nur mit einer temporären Tabelle, die nur für den eigenen Verbindungsthread nutzbar ist. Müsste also eine Tabelle Sein, die beim Start der MySQL-Verbindung erstellt wird und dann genauso vorhanden ist wie die Tabelle "Filter" im Einzelbetrieb.
Das heißt also generell, das ich bei MySQL so viele verschiedene Benutzer für die Datenbank hinzufügen / anlegen muss, wie daran arbeiten müssen. Bisher hatte ich es auf einen "Sammelbenutzer" mit dem gleichen Kennwort beschränkt, die sich dann von unterschiedlichen Rechnern aus auf der Datenbank angemeldet hatten.
Nein, das ist nicht abhängig von irgendeiner Benutzerzahl. Das wird mit dem Thread geregelt. Du kannst so eine temporäre Tabelle nur auf dem Arbeitsplatz sehen, von dem aus Du Dich angemeldet hast. Mit dem Benutzer hat das nichts zu tun. Der ist ja standardmäßig irgendwo für so eine Datenbank festgelegt.
Gruß
Robert
Re: Suchabfrage über mehrere Felder
Verfasst: Fr 28. Jun 2013, 20:48
von RobertG
Hallo Arne,
ich habe die Suchtabelle jetzt einmal an MySQL und den dortigen Mehrbenutzerbetrieb angepasst. Die Umformulierung des Makros war weniger das Problem. Der Teufel steckt dann meist im Detail. So kann auf eine temporäre Tabelle in MySQL (oder bei der MariaDB, die ich hier habe) nicht zweimal innerhalb einer Abfrage zugegriffen werden. Dadurch musste ich die Abfrage zusätzlich anpassen und das Makro etwas umstellen. Dann kam noch das Problem hinzu, dass die temporäre Tabelle natürlich existieren muss, bevor das Formular auf sie zugreifen will. Deshalb muss die temporäre Tabelle am besten beim Öffnen der *.odb-Datei geschrieben werden. Das Makro ist hier also entsprechend eingebunden.
Grundlage für die Funktion ist in dem Beispiel weiter die Tabelle, die in der Beispieldatenbank "Suchen_und_Filtern" vorhanden ist. Ich habe die einfach zum Testen nach MySQL importiert.
Die an MySQL angepasste Version hänge ich an.
Gruß
Robert