Tagesstatistik in Base

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Rudi_2018
Beiträge: 9
Registriert: Di, 31.07.2018 16:38

Tagesstatistik in Base

Beitrag von Rudi_2018 » Do, 06.09.2018 10:19

Ich möchte zur Erfassung von Personendaten im Eingabe-Formular eine laufende Nummer anzeigen, welche die Anzahl der erfassten Einträge pro Tag und auch des Monats anzeigt.

In der geplanten Anwendung ist es wichtig die Anzahl der täglichen Restplätze zu kennen, die Monatliche Anzahl dient "nur" der Statistik und sollte ebenfalls beim eingeben sichtbar sein. Nun ist die Frage geht das überhaupt und falls ja, wie mache ich das.

Gruss Rudi

RobertG
*******
Beiträge: 1734
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Tagesstatistik in Base

Beitrag von RobertG » Do, 06.09.2018 16:24

Hallo Rudi,

ob so etwas mit einfachen Mitteln geht hängt von der Konstruktion des Formulars ab. Prinzipiell kannst Du natürlich in Abfragen zusammenrechnen, wie viele Datensätze mit einem entsprechenden Merkmal bisher vorhanden sind.
Hast Du jetzt aber nur ein einfaches Formular mit normalen Eingabefeldern, so sind bei Neueingaben die Felder leer - auch ein gegebenenfalls per Abfrage gefülltes Feld, weil dort der Datensatz noch nicht existiert.
Arbeitest Du mit einem Formular, das ein Tabellenkontrollfeld als Grundlage hat, dann siehst Du auch vorhergehende Datensätze und damit auch das Ergebnis der Abfrage in dem vorhergehenden Datensatz.
Was nur mit Hilfe von Makros geht: Das Ergebnis einer Abfrage in einem Formular präsentieren, dessen Datensatz neu, also noch nicht in der Datenbank abgespeichert ist.

Für die Abfragetechnik: Suche im Handbuch nach dem Begriff "korrelierte Unterabfrage" (aktuelles Handbuch Kapitel "Abfragen", S. 283f.) sowie "Zeilennummerierung" (aktuelles Handbuch Kapitel "datenbank-Aufgaben", S.412ff.).

Gruß

Robert

Rudi_2018
Beiträge: 9
Registriert: Di, 31.07.2018 16:38

Re: Tagesstatistik in Base

Beitrag von Rudi_2018 » Do, 06.09.2018 19:50

Hallo Robert,

danke für die schnelle Antwort. Es wird ein einfaches Formular verwendet, das nur die im Moment eingegebenen Daten anzeigt, bis sie abgespeichert werden. Das abspeichern muss sofort erfolgen, da aus Datenschutzgründen die persönlichen Daten nicht mehr am Bildschirm einsehbar sein dürfen. Also eine Lösung wo ältere Datensätze angezeigt werden kommt somit nicht in Frage.

Ich werde mir deine Vorschläge im Handbuch mal zu Gemüte führen und schaue mal ob ich ein Makro dafür gebacken bekomme.

Gruss Rudi

RobertG
*******
Beiträge: 1734
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Tagesstatistik in Base

Beitrag von RobertG » Do, 06.09.2018 20:50

Hallo Rudi,

wenn Du mit Datenschutzgründen argumentierst ist für Dich die interne Datenbank, vermutlich überhaupt Base, der falsche Weg. Jede Person, die eine Basedatei vor sich hat, kann doch die Tabellen und Abfragen sehen. Das Formular gibt da nur einen kosmetischen Schutz. Und dies ist zuerst auch einmal so, wenn Du auf eine externe Datenbank zugreifst. Da müsste dann schon für jede Person eine separate *.odb-Datei existieren und jede Person mit einem separaten Passwort auf eine Serverdatenbank zugreifen, die auch nur die Ansicht und das Ändern der eigenen Daten zulässt.

Ich habe so etwas bei Serverdatenbanken in Kombination mit entsprechend vielen Benutzern ausprobiert. Wenn ich so etwas lösen wollte würde ich den Weg über einen Webserver und PHP/MariaDB gehen. Da sind die Abfragen für die Person, die eingibt, auf dem Server nicht zum editieren erreichbar.

Gruß

Robert

Gast

Re: Tagesstatistik in Base

Beitrag von Gast » Fr, 07.09.2018 09:17

Hallo Robert,

nun Datenschutz war in dem Sinne gemeint, dass wenn jemand über die Schulter auf den Bildschirm schaut er maximal den letzten Eintrag sehen kann. Ansonsten ist der PC ja über Benutzerzugriff gesichert.

Gruss Rudi

Rudi_2018
Beiträge: 9
Registriert: Di, 31.07.2018 16:38

Re: Tagesstatistik in Base

Beitrag von Rudi_2018 » Di, 11.09.2018 09:44

Also ich habe trotz langwieriger Suche nichts gefunden wie ich per Makro in ein Feld in meinem Eingabeformular schreiben kann. Ich bräuchte da doch noch einen Tip.

Gruss Rudi

RobertG
*******
Beiträge: 1734
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Tagesstatistik in Base

Beitrag von RobertG » Di, 11.09.2018 18:56

Hallo Rudi,

Du kannst doch aus dem Handbuch das Kapitel "Werte in einem Formular vorausberechnen" im Kapitel "Makros" ansehen. Du brauchst einen Zugriff auf das Tabellenfeld über das Formular. Möglicher Zugriff auf das Formular, wenn nicht über ein Ereignis innerhalb des Formulars gesteuert:

Code: Alles auswählen

oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.forms.getByName("Hauptformular")
Jetzt von dort den Zugriff auf das Feld:

Code: Alles auswählen

oField = oForm.getByName("MeinTextfeld")
Dann die Eingabe des Wertes in dieses Textfeld bzw. auch direkt in die darunterliegende Datenbankzeile:

Code: Alles auswählen

oField.BoundFiled.UpdateString("Neuer Text")
Gruß

Robert

Antworten