🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Fester Wert im Formular

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Fester Wert im Formular

Beitrag von paulderfinne » Mi 20. Feb 2013, 14:06

Hallo,

bin neu hier und deshalb erstmal ein höfliches: "Seid mir Gegrüßt" in die Runde.

Als ein richtig unerfahrener Base-User, möchte ich trotzdem eine kleine Anwendung "stricken". Bisher geht es recht schleppend vorwärst, aber immerhin vorwärts. Nun abr habe ich eine kleine Blockade.

Ich habe eine Passwortabfrge mit Username und Passwoert gebaut (Felder in einer Tabelle der Datenbank hinterlegt). Nun möchte ich mit diesem Wissen in ein Formular springen und dort Daten in einer anderen Tabelle Daten erfassen lassen mit dem festen Wert des Usernamen. Also der Username ist ein Wert in der neuen Tabelle, soll aber nicht jedes Mal eingegeben werden, da er ja beriets bei der Identifikation festegelegt wurde.

Habt ihr verstanden, was ich meine?

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fester Wert im Formular

Beitrag von RobertG » Mi 20. Feb 2013, 14:38

Hallo plauderfinne,

welche Datenbank nutzt Du denn? Für die interne Datenbank dürfte das Verfahren je wenig Sinn machen. Da liegend doch alle Daten offen - kein Schutz vor Veränderungen, auch wenn Du irgendwo ein Passwort abfragst.
Du kannst Dich natürlich als irgendeine Person angeben und dann für diese Person eingaben machen. Die Weitergabe des Primärschlüssels der Nutzertabelle über eine Formular-Unterformular-Konstruktion ist hier die einfachste Lösung. Bei einer Datenbank, die nur durch einen User auf einmal genutzt wird kannst Du auch den Usernamen in einer separaten Tabelle abspeichern, die nur einen Datensatz hat. Aus der liest Du dann immer den Nutzernamen für die folgenden Eingaben aus. Nur macht eine Passwortabfrage da keinen Sinn.
Wenn Du mit Passwortabfragen arbeitest, dann müsste das Ganze eigentlich eine Mehrbenutzerdatenbank sein. Kenne ich aus eigenen Datenbankaufbauten erst einmal nur für PHP mit eines SESSION-Variablen. Der jeweilige Nutzer kann nicht aus einer Zwischenspeicherung in der Datenbank ermittelt werden, da ja gleichzeitig mehrere Nutzer darauf zugreifen können.
Schreib also einfach erst einmal etwas genauer auf, welche Datenbank Du nutzt. Arbeitest Du zum Test erst einmal mit der internen Datenbank von Base, der HSQLDB, dann macht eine Passwortabfrage keinen Sinn.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Fester Wert im Formular

Beitrag von paulderfinne » Mi 20. Feb 2013, 16:14

Hallo Robert,

vielen Dank für deine schnelle Anwort.

Das mit dem Passwort ist schon gut überlegt. Ich brauche das, weil sich eben viele Personen drauf anmelden. Allerdings sind sie mir alle bekannt und sie arbeiten auch nicht gleichzeitig dran. Es ist also, wenn du so willst eine multiuser-monotasking Anwendung. (Die Datenbank läuft auf genau einem Rechner an dem genau ein User auf einmal dransitzt. Dann sitzt später ein anderer User dran usw.)
Als Datenabnk habe ich eine MySql genommen (weil ich es so gewohnt bin). Das ganze hat keine Sicherstufe Himmelhoch.

Mir ging es eigentlich gar nicht um das Passwort. Das ist absolut sekundär. Ich möchte nur den Datensatz, den ich in einem Formular gewonnen habe (hier eben den Usernamen) in ein anderes Formular als festen Tabellenwert übergeben. Dieser Wert ist aber keineswegs der Primärschlüssel für diese Tabelle. Der Wert soll sich allerdings für diese Session nicht ändern, also für jedes neue Tupel in der Tabelle den festen Wert "Username" haben.

Eine Idee wäre, den Usernamen per Makro an das neue Formular in ein Textfeld zu schreiben, das weder sichtbar, noch editiebar sein muss (soll). Dann müsste es mir irgendwie gelingen, dass für jeden neuen Datensatz (den ich einfah in einer Tabelle editieren lassen will) das Feld für den Usernamen eben mit diesem Textfeld gefüllt wird.
Das "irgendwie" ist hier die Krux.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fester Wert im Formular

Beitrag von RobertG » Mi 20. Feb 2013, 21:44

Hallo paulderfinne,

ich hatte da einmal ein Makro, das den Username aus meiner Linuxumgebung automatisch in die Tabelle schrieb. Also nichts mit Anmeldung über Passwort sondern Anmeldung am Linux-Rechner und dem entsprechenden Namen. Würde vielleicht auch für Dich brauchbar sein. Ich hänge das Beispiel einfach einmal an.

Gruß

Robert
Dateianhänge
Username.odb.zip
(10.14 KiB) 201-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Fester Wert im Formular

Beitrag von F3K Total » Mi 20. Feb 2013, 22:51

Hallo,
mal ein Beispiel für die eingebettete HSQLDB, kann mir nicht vorstellen dass MySql das nicht kann?
Tabelle: TestUsername
Spalte 1: ID integer Autowert
Spalte 2: USER Varchar(20)
Spalte 3: TIMESTAMP Timestamp
Eingabe über Extras/SQL ...

Code: Alles auswählen

ALTER TABLE "TestUsername" alter Column USER set default CURRENT_USER;
ALTER TABLE "TestUsername" alter Column TIMESTAMP set default CURRENT_TIMESTAMP
und schwupps werden User und Timestamp beim Einfügen eines neuen Datensatzes mitgeschrieben.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fester Wert im Formular

Beitrag von RobertG » Do 21. Feb 2013, 08:33

Hallo R.,

damit liest Du nicht den User des Systems aus. Die Datenbank kennt nur den Datenbankuser. In Base gibt das dann für die HSQLDB immer schön "SA". Für MySQL dürfte das der User sein, unter dessen Namen und mit dessen Rechten die Datenbank gerade läuft - nicht der, der sich angemeldet hat und tatsächlich Daten eingibt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Fester Wert im Formular

Beitrag von paulderfinne » Do 21. Feb 2013, 09:47

Vielen Dank für eure Mühen.
Danke Robert für dein Makro. Bei mir heißt die Umgebungsvariable zwar USER und nicht USERNAME, aber nach Korrektur und Einbindung des Makros an das Ereignis "Öffne Formular" oder wie das heißt, hat das funktioniert. Das Reinschreiben von Werten in ein Formularfeld kann ich auf jeden Fall für mich gebrauchen. Dankeschön.

Ansonsten denkt ihr viel zu kompliziert. Um den Usernamen geht es mir gar nicht. Wahrscheinlich habe ich mich wieder mal viel zu verschroben ausgedrückt. Entschuldigt bitte.

MIr geht es darum ein Formular zu bauen, das eine Tabelle bearbeitet. Diese Tabelle soll aber nach einem bestimmten Wert eines Feldes gefiltert ausgegeben und alle weiteren Werte, die eingegeben werden, sollen in jener Spalte auch genau diesen Wrt enthalten. (In meinem Beispiel war es halt der Usernamen, aber das ist egal).

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Fester Wert im Formular

Beitrag von paulderfinne » Do 21. Feb 2013, 16:57

Hallo ich nochmal,
ich glaube jetzt eine Möglichkeit gefunden zu haben, wie ich das löse. Ich fülle die entsprechenden Felder des Formulars bzw. der Tabelle im Formlar. Jetzt müsste ich nur noch wissen, wie zu den komischen Methodennamen komme. Also sowas wie du Robert un deinem Prgramm:

oFeld.BoundField.updateString(Environ("USER"))

Wie heisst das Ding, wenn es nicht gebunden ist. Wie heisst eine ei´gebunden Tabelle? Wie heißen die Eigenschaften dieser Tabelle?

Wo kann ich da nachschauen. In den normalen Tutorials stehet sowa gar nichr drin.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Fester Wert im Formular

Beitrag von F3K Total » Do 21. Feb 2013, 17:15

Moin,
paulderfinne hat geschrieben:Diese Tabelle soll aber nach einem bestimmten Wert eines Feldes gefiltert ausgegeben und alle weiteren Werte, die eingegeben werden, sollen in jener Spalte auch genau diesen Wrt enthalten. (In meinem Beispiel war es halt der Usernamen, aber das ist egal).
Na, das geht doch.
Das Haupformular hat zum Dateninhalt die Tabelle Filter. Nur "Daten ändern" wird zugelassen.
In Tabelle Filter gibt es nur eine Zeile.
Mit einem Listenfeld wählst Du den gewünschten Filterbegriff.
Nun wird noch das Subformular an dieses Filterfeld gebunden, fertig, anbei ein einfaches Beispiel.

Gruß R
Dateianhänge
XFilter.zip
(10 KiB) 201-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Fester Wert im Formular

Beitrag von F3K Total » Do 21. Feb 2013, 17:24

RobertG hat geschrieben:Hallo R.,

damit liest Du nicht den User des Systems aus. Die Datenbank kennt nur den Datenbankuser. In Base gibt das dann für die HSQLDB immer schön "SA". Für MySQL dürfte das der User sein, unter dessen Namen und mit dessen Rechten die Datenbank gerade läuft - nicht der, der sich angemeldet hat und tatsächlich Daten eingibt.

Gruß

Robert
Hallo Robert,
das ist schon klar. Base bietet doch die Möglichkeit sich mit einem Usernamen an die DB anzumelden. Ich bin davon ausgegangen, dass die MySql-DB extern läuft und paulderfinne in eben dieser User und Rollen verteilt hat.
Aber da lag ich wohl daneben.

Gruß Rik
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten