❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
zwei unterschiedliche Werte in zwei Spalten schreiben
zwei unterschiedliche Werte in zwei Spalten schreiben
Kann ich im Eingabe Formular zwei Unterschiedliche Werte in die Tabelle in zwei verschiedene Zeilen schreiben lassen? Ich habe eine Tabelle "Gesamtdaten"und eine Tabelle "tbl_zeittyp" . In die Gesamtdaten-Tabelle schreibt mir tbl_zeittyp z. B Ein "U" .
Und ich schreibe in "Anspruch" z. B 28. Ich habe mir per Abfrage die Anzahl der "U" Anzeigen lassen und wollte diese von Sum "Anspruch" abziehen lassen. Bekomme aber Probleme mit der Beziehung zum Wert auf tbl_zeittyp. Deshalb habe ich mir gedacht das ich in einer anderen Spalte für jedes "U" eine "1" eintragen, und dann von einander abziehen. Funktioniert auch gut. Ist aber umständlich. Deshalb habe ich mir überlegt das wenn es geht das mir das Eingabefeld zwei Werte schreib. Ein "U" in "zeittyp_ID" und eine "1" in "genommen", beide in Tabelle "Gesamtdaten". Ist das überhaupt möglich? Oder muss ich doch auf den ersten Lösungsansatz zurückgehen?
Gruß Moerser01
Und ich schreibe in "Anspruch" z. B 28. Ich habe mir per Abfrage die Anzahl der "U" Anzeigen lassen und wollte diese von Sum "Anspruch" abziehen lassen. Bekomme aber Probleme mit der Beziehung zum Wert auf tbl_zeittyp. Deshalb habe ich mir gedacht das ich in einer anderen Spalte für jedes "U" eine "1" eintragen, und dann von einander abziehen. Funktioniert auch gut. Ist aber umständlich. Deshalb habe ich mir überlegt das wenn es geht das mir das Eingabefeld zwei Werte schreib. Ein "U" in "zeittyp_ID" und eine "1" in "genommen", beide in Tabelle "Gesamtdaten". Ist das überhaupt möglich? Oder muss ich doch auf den ersten Lösungsansatz zurückgehen?
Gruß Moerser01
Re: zwei unterschiedliche Werte in zwei Spalten schreiben
Guten Tag Moerser01,
ich habe Schwierigkeiten Deine Beschreibung zu verstehen. Falls Du in ein Eingabefeld eines Formulars zwei Werte eingeben willst und diese Werte in zwei Spalten einer Tabelle eingetragen werden sollen, funktioniert dieses Makro:
Die Werte müssen durch ein Komma getrennt in das Eingabefeld geschrieben werden. Du kannst auch einen anderen Trenner im Makro festlegen.
Weiterführendes zu "Insert into" findest Du im Base-Handbuch.
Gruß acco
ich habe Schwierigkeiten Deine Beschreibung zu verstehen. Falls Du in ein Eingabefeld eines Formulars zwei Werte eingeben willst und diese Werte in zwei Spalten einer Tabelle eingetragen werden sollen, funktioniert dieses Makro:
Code: Alles auswählen
SUB SplitEingabe
DIM oSplitFeld AS OBJECT
DIM oForm AS OBJECT
DIM SplitWert(1) ' ein Array mit max. 2 Werten
DIM oDatenquelle AS OBJECT
DIM oVerbindung AS OBJECT
DIM oSQL_Anweisung AS OBJECT
DIM stEintrag1 AS STRING
oForm = ThisComponent.DrawPage.Forms.GetByName("Formular") ' der Formularname muß angepasst werden
oSplitFeld = oForm.getByName("SplitFeld") ' Name des Eingabefeldes in meinem Formular
SplitWert()=Split(oSplitFeld.TEXT, ",") ' die durch Komma getrennten Werte werden aufgesplittet
print SplitWert(0) 'gibt Wert 1 aus - nur zur Info, kann gelöscht werden
print SplitWert(1) 'gibt Wert 2 aus - nur zur Info kann gelöscht werden
' Verbindung herstellen
oDatenquelle = ThisComponent.Parent.DataSource
oVerbindung = oDatenquelle.GetConnection("","")
oSQL_Anweisung = oVerbindung.createStatement()
' Werte z.B. in Tabelle "Name" eintragen
stEintrag1 = "INSERT INTO ""Namen""(""Vorname"",""Name"") VALUES ('"+ SplitWert(0)+"','"+ SplitWert(1) +"')"
oSQL_Anweisung.executeUpdate(stEintrag1)
END SUB
Die Werte müssen durch ein Komma getrennt in das Eingabefeld geschrieben werden. Du kannst auch einen anderen Trenner im Makro festlegen.
Weiterführendes zu "Insert into" findest Du im Base-Handbuch.
Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1
Re: zwei unterschiedliche Werte in zwei Spalten schreiben
Hallo acco
Danke für die schnelle antwort.
Ich weiß nicht ob das so geht da die eine Spalte eine ID für eine Beziehungstabelle ist und außer dem wenn ich zwei werte eingeben muß dann kann ich auch zwei Eingabefelder ins Eingabeformular einbauen (das ich ja so schon habe ) .
Ich versuche es noch mal zu erklären. ich habe eine Tabelle die sieht so aus.
und der zeittyp_Id ist mit eine Tabelle verbunden die "tbl_zeittyp "heißt in der steht "U" für Urlaub, oder "A"für Ausgang.
Im Eingabeformular gebe ich Urlaub ein und er schreibt mir ein "U" in die Tabelle Gesamtdaten.Zeittyp_ID.
Jetzt hätte ich gern das ich mir eine Eingabe spare das er mir eine "1" in die Tabelle Gesamtdaten.Urlaubverb. eine 1 mitreinschreib ohne das ich das selbst tun muß.
Gruß Moerser
Danke für die schnelle antwort.
Ich weiß nicht ob das so geht da die eine Spalte eine ID für eine Beziehungstabelle ist und außer dem wenn ich zwei werte eingeben muß dann kann ich auch zwei Eingabefelder ins Eingabeformular einbauen (das ich ja so schon habe ) .
Ich versuche es noch mal zu erklären. ich habe eine Tabelle die sieht so aus.
und der zeittyp_Id ist mit eine Tabelle verbunden die "tbl_zeittyp "heißt in der steht "U" für Urlaub, oder "A"für Ausgang.
Im Eingabeformular gebe ich Urlaub ein und er schreibt mir ein "U" in die Tabelle Gesamtdaten.Zeittyp_ID.
Jetzt hätte ich gern das ich mir eine Eingabe spare das er mir eine "1" in die Tabelle Gesamtdaten.Urlaubverb. eine 1 mitreinschreib ohne das ich das selbst tun muß.
Gruß Moerser
- Dateianhänge
-
- Beziehungen.JPG (34.26 KiB) 3446 mal betrachtet
-
- Tabelle.JPG (44.3 KiB) 3446 mal betrachtet
Re: zwei unterschiedliche Werte in zwei Spalten schreiben
Ps: Aber er soll nur eine "1" rein schreiben bei "Urlaub"
Re: zwei unterschiedliche Werte in zwei Spalten schreiben
Hallo Moerser01,
ich verstehe nicht weshalb Du Urlaub "U" und Urlaubstage "1" in der Tabelle erfassen willst. "U" reicht völlig, wenn "U" immer gleich "1" ist. Spalte Urlaubsverbrauch wäre dann überflüssig.
Die Anzahl der Urlaubstage pro Mitarbeiter geht dann über eine Abfrage Die kannst Du ja um weitere Felder ergänzen, wie Name, Zeitraum, usw.
Falls Du unbedingt eine "1" bei Urlaubsverbrauch haben willst, beschäftige Dich mit dem Update-Befehl (z.B. im Handbuch oder hier im Forum zu finden). Der ist ähnlich wie der Insert-Befehl im Makro meines letzten Posts.
Gruß acco
ich verstehe nicht weshalb Du Urlaub "U" und Urlaubstage "1" in der Tabelle erfassen willst. "U" reicht völlig, wenn "U" immer gleich "1" ist. Spalte Urlaubsverbrauch wäre dann überflüssig.
Die Anzahl der Urlaubstage pro Mitarbeiter geht dann über eine Abfrage
Code: Alles auswählen
SELECT "ma_ID", COUNT( "zeittyp_ID" ) FROM "Gesamtdaten" WHERE "zeittyp_ID" = 'U' GROUP BY "ma_ID"
Falls Du unbedingt eine "1" bei Urlaubsverbrauch haben willst, beschäftige Dich mit dem Update-Befehl (z.B. im Handbuch oder hier im Forum zu finden). Der ist ähnlich wie der Insert-Befehl im Makro meines letzten Posts.
Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1
Re: zwei unterschiedliche Werte in zwei Spalten schreiben
Hallo Moerser01,
ein weiteres Problem bekommst Du hiermit:
Im angehängten Beispiel habe ich das mal gemacht. Die Unterformulare sind über die Mitarbeiter_IDs mit dem jeweils übergeordneten Formular verknüpft. Dazu habe ich für das Unterformular eine Abfrage "Ab_Urlaub" erstellt und für das UnterUnterFormular die bereits gepostete Abfrage mit dem "group by" Befehl eingebaut. Schau Dir mal an, ob dieser Vorschlag für Deine Zwecke geeignet ist.
Gruß acco
ein weiteres Problem bekommst Du hiermit:
Sum"Anspruch" addiert alle Einträge, steht zweimal 28 in der Spalte wird daraus 56, usw.. Außerdem müsstest Du jeden Tag für jeden Mitarbeiter den Urlaubsanspruch eingeben, oder über ein Makro errechnen lassen. Eleganter wäre, den Urlaubsanspruch der Tabelle Mitarbeiter zuzuordnen und im Formular "Mitarbeiter anlegen, bearbeiten" über ein Unterformular die verbrauchten Urlaubstage anzeigen zu lassen. In einem weiteren UnterUnterFormular kannst Du dann die Gesamtzahl des verbrauchten Urlaubs errechnen lassen.Und ich schreibe in "Anspruch" z. B 28. Ich habe mir per Abfrage die Anzahl der "U" Anzeigen lassen und wollte diese von Sum "Anspruch" abziehen lassen.
Im angehängten Beispiel habe ich das mal gemacht. Die Unterformulare sind über die Mitarbeiter_IDs mit dem jeweils übergeordneten Formular verknüpft. Dazu habe ich für das Unterformular eine Abfrage "Ab_Urlaub" erstellt und für das UnterUnterFormular die bereits gepostete Abfrage mit dem "group by" Befehl eingebaut. Schau Dir mal an, ob dieser Vorschlag für Deine Zwecke geeignet ist.
Gruß acco
- Dateianhänge
-
- Arbeitszeiten_1.zip
- (33.79 KiB) 235-mal heruntergeladen
openSUSE Tumbleweed - LibreOffice 24.8.2.1
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.