Seite 1 von 1

Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Mo 29. Okt 2018, 18:01
von lasser
Moin!
Ich bin dabei für das KT-Atelier meiner Frau eine kleine Klientendatenbank zu basteln. Wohlgemerkt basteln, weil ich von Datenbanken nicht wirklich viel Ahnung habe. Sind alles keine Fremdworte für mich, aber kompliziertere Dinge gehen schnell über meinen Horizont.
Das, was ich bisher zustande gestoppelt habe - im Prinzip die abgewandelte Beispiel-DB aus dem Handbuch - hänge ich mal an. Im letzten Datensatz findet sich dann auch die ausstehende Wunschliste mit vorerst 3 Punkten ;-)

Ich hoffe, es ist in Ordnung, wenn hier im thread alle 3 Punkte abgehandelt werden, auch wenn das u.U. ein wenig durcheinander gerät hier.
1. Alter der Klienten anzeigen
Reichen würde hier YEAR( NOW()) - YEAR( "Geburtsdatum")
Es soll im Hauptformular "Klienten" im Feld Alter angezeigt werden.
Grundsätzlich funktioniert das, siehe Formular "Abfrage_Klienten", dort kann ich durch die Klienten klicken und das jeweilige Alter wird korrekt angezeigt.
Wenn ich dieses Formular in das Hauptformular "Klienten" kopiere, wird dort zwar das Alter des 1. Klienten angezeigt, aber beim durchklicken durch die Klienten ändert sich in dem Feld nichts…

2. Eine Suche nach Nachnamen mittels Eingabefeld und "Such!"-Button.

3. Im Unterformular sollen die mit dem jeweiligen Klienten aus dem Hauptformular bereits abgehaltenen Termine angezeigt werden, und zwar auf 2 verschiedene Weisen: Einmal die Gesamtanzahl der Termine, und in einem 2. Feld die Anzahl passend zum gerade ausgewählten "genutzem Angebot". Also ein Klient war schon 12 mal da (1. Feld zeigt "12") und hatte dabei 3x Ausdrucksmalen und 9x Kunsttherapie. Bei Auswahl eines Termins mit "Angebot" Ausdrucksmalen soll im 2. Feld "3" erscheinen… naja, ihr wisst schon…
SQL kann ja selber die Anzahl der passenden Einträge zählen. Sowas wie SELECT COUNT(*) FROM tabelle WHERE ID-Klient = X, es braucht also nicht extra irgendwo was mitgezählt werden.

Ich bin mir nichtmal sicher, ob ich das, was gewünscht ist, hier richtig formuliert habe, geschweige denn, dass ich in der Lage wäre, das umzusetzen.
Ich habe aber den Eindruck, dass zumindest Punkt 1 und 3 ohne großes Hexenwerk auskommen, also ohne Makros…
Bei Punkt 2 bin ich völlig ratlos.

Ich hoffe auf eure Hilfe.

LG
Frank

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Mo 29. Okt 2018, 18:40
von F3K Total
Hi,
habe jetzt keine Zeit mehr, aber zum ersten Problem:
Wenn du alle anderen Felder der Tabelle Klienten, neben der Berechnung des Alters in deine Abfrage Abfrage_Klienten einbaust, etwa so:

Code: Alles auswählen

SELECT "Klienten".*, YEAR( NOW( ) ) - YEAR( "Geburtsdatum" ) AS "Alter" FROM "Klienten"
, und dann diese Abfrage zur Datengrundlage deines Formulares MainForm machst, dann noch das Textfeld Alter in ein Formatiertes Feld umwandelst, kannst du das Alter diesem Feld zuordnen, und alles ist schick, siehe Anhang.
Lerne dringend den Formularnavigator kennen, da siehst du dann den Unterschied zwischen deiner und meiner Version.

Gruß R

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Mo 29. Okt 2018, 19:18
von lasser
Danke!
Auf den Trick mit der Abfrage wär ich nie gekommen.
Um ein bisschen Lerneffekt zu haben, habe ich versucht, das Ganze ohne Ansehen Deiner Version hinzukriegen. Und voilà :-)

Den Navigator benutze ich natürlich. Auch die Kontrollfelder…

Aber das nützt ja nix, wenn mir der grundsätzliche Überblick abgeht.

Also, Punkt 1 ist geklärt! :-)

LG
Frank

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Mo 29. Okt 2018, 19:19
von F3K Total
Hi,
Zum 2. Punkt empfehle ich dir meine Videotutorials, siehe meine Signatur, da gibt es dann auch was zum Filtern.
Gruß R

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Di 30. Okt 2018, 02:13
von lasser
Ok, dank deiner HowTos über Parameter-Abfrage und Erstellen einer Suche mit Filter-Tabelle ist Punkt 2 auch erledigt. Kind of…

Es funktioniert richtig gut. Aber irgendwie ist das Wiederumschalten auf die Gesamtheit der Datensätze ein etwas umständlicher workflow: Klicken ins Suchfeld, Suchwort löschen, auf Schaltfläche "aktualisieren" klicken. Geht das nicht auch schneller mit 1 Aktion? Aber wenn nicht, auch nicht schlimm…

Und ich habe das Gefühl, dass Punkt 3 auch mit einer Parameter-Abfrage zu lösen wäre…Richtig?

LG
Frank

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Di 30. Okt 2018, 07:08
von F3K Total
Moin,
nö, mit Parameterabfrage ist da nix nötig. Einfach zwei Abfragen mit COUNT() und GROUP BY, und dann an der richtigen Stelle als Grundlage von Unterformularen einbauen.

Gruß R

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Di 30. Okt 2018, 11:45
von F3K Total
lasser hat geschrieben:
Di 30. Okt 2018, 02:13
... ein etwas umständlicher workflow:...
Das kann nur per Makro einfacher werden:
Eine Schaltfläche, auf dem Formular Filter, mit diesem Makro an "Aktion ausführen" gebunden:

Code: Alles auswählen

Sub Filter_Reset(Event)
    oFormFilter = Event.source.model.Parent
    oFormFilter.Columns.F_Nachname.updateNull
    oFormFilter.updateRow
    oFormFilter.reload
End Sub
könnte helfen.
Gruß R

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Di 30. Okt 2018, 15:18
von lasser
Moin R,

mangels Abgabestelle für Kudos ein fettes DANKE!!!, sowohl für Deine Hilfe als auch die Videos und Deine Zeit.

Ich werde das Formular noch ein bisschen netter gestalten und dann hier zum Download anbieten. Vllt. stolpert ja jemand drüber, der's gebrauchen kann.

LG
Frank

Re: Klientendatenbank intern LO 5.2.7.2 Debian

Verfasst: Fr 2. Nov 2018, 11:35
von lasser
So, falls jemand eine kleine Klientendatenbank im Therapiebereich sucht, im Anhang ist eine zu finden. Gerne weiterentwickeln, gibt sicher Potential Richtung Rechnungswesen und Terminkalender ;-)

Vielen Dank für die Hilfe hier in diesem Forum.

LG
Frank