🙏 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. 🤗

Neue Datensätze aus alten, vorhandenen generieren.

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von WonneWasti » Mi 11. Dez 2019, 08:54

Hallo, kein Problem-chen, eher ein Aufgabe-chen.... ;-)
Ich würde gern in einem Unterformular per Schaltflächen - Druck ein paar neue Datensätze anfügen.
Die neuen Datensätze wären aus anderen, vorhandenen zu generieren. Konkret sollen aus einer Tabelle "Pflanzen" die Datensätze mit einer SaisonID um 1 kleiner (von der vorherigen Saison) als die Saison ID in einer Filtertabelle (für das Formular) im Formular zum Editieren erscheinen.
Das soll mir Fieselarbeit und Tippfehlerkorrekturen beim Eintippen im Freien am Laptop abnehmen.
Kann das gehen und ggf. wie ?

"früher" bei Clipper hätte ich so etwas wie "APPEND FOR .........." versucht....


Hintergrund:
Meine Überwinterungsdatenbank läuft jetzt die zweite Saison gogo und BaseReportExtension sei dank wie am Schnürchen.
Es gibt noch Feinheiten zum Feilen - klar. Das ist immer so.
Beim Kunden tippe ich seine (meist ihre ;-) ) zu überwinternden Pflanzen jeden Herbst neu ein. Listenfeldern und Kombinationsfeldern sei dank geht das einigermaßen flott und "fehlerarm". Es wiederholen sich jährlich 85% der Pflanzen, mit kleinen Änderungen (anderer Topf, höher, dicker) da wäre es geschickt die Vorjahresdatensätze als Vorlage nur editieren zu müssen.

Gruß und Dank für die Ausfmerksamkeit
WonneWasti

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

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von RobertG » Mi 11. Dez 2019, 16:18

Hallo WonneWasti,

Lösungen mit Formular und Unterformular ohne Makros sind ohne Probleme möglich. Schau Dir dazu einmal http://www.familiegrosskopf.de/robert/l ... ng_V60.zip an. Darin ist ein Kapitel "Duplizieren von Daten" enthalten.

Kurz geschrieben: Im Hauptformular den alten Datensatz aussuchen, an das Unterformular alle Felder übergeben, mit denen Du weiterarbeiten willst. Du musst eine Änderung im Unterformular vornehmen, damit der dortige Datensatz gespeichert werden kann. Das ist in dem Beispiel mit einem Ja/Nein-Feld gemacht worden. Den gespeichereten Datensatz kannst Du entsprechend anpassen.

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

WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von WonneWasti » Mi 11. Dez 2019, 20:36

Hallo, Robert,
leider funktioniert der Download nicht. Aber ich bin schon ein bisserl weiter :

"INSERT INTO ZielTabelle SELECT * FROM QuellTabelle WHERE Bedingung" ( gestohlen)

Jetzt weiß ich noch nicht wie ich das SQL Kommando durch eine Schaltfläche auslösen kann.

Gruß

Wasti

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

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von RobertG » Do 12. Dez 2019, 07:29

Hallo Wasti,

nimm den hier: http://www.familiegrosskopf.de/robert/l ... ng_V60.zip

Ich habe die Homepage vor ein paar Wochen auf https umgestellt und dabei einige Links nicht korrekt angepasst.

Insert-Befehle kannst Du nur über ein Makro absetzen.

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

WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von WonneWasti » Do 12. Dez 2019, 10:11

Hallo, Robert,
HUCH ! Das ist schwere Kost für den ab- und - zu Daten - Banker . Das wird mich mehr als ein paar Tage beschäftigen.

Was ich schon sehen kann ist dass es anders Funktioniert als ich mir gedacht habe.

Ich hatte mir vorgestellt die einzufügenden Daten mit einer Abfrage parat zu stellen. Da scheitere ich schon daran die KundenID zum Filtern aus dem aktuellen Datensatz auszulesen. Aus dem Formular oder aus der Tabelle holen ?
In einer While- (While noch einer da)Schleife will ich neue Datensätze mit neuer ID anlegen lassen und dann Feldweise die Inhalte einfügen, dabei die Auftragsnummer vom Hauptformular automatisch einfügen lassen.
ausgelöst durch eine Schaltfläche "Vorjahresdaten übernehmen"

Ist das ein kompletter Irrweg ?

Ich habe der Datenbank Trials die Kundendaten etwas druchnenandergewüflert, als zip umbenannt und angehängt.
Die anderen zip´s sind ott´s für die Berichterstellung.
"DateneingabeLin" wäre das Formular für die Schaltfläche.
Erschrick nicht wenn du dir alles im Detail anschaust, das ist ein Arbeitsergebnis wie wenn ein Mechanikerlehrling im ersten Lehrjahr einen Bulldog wieder zusammenbauen soll den vorher ein anderer zerlegt hat..... :oops:

Gruß Wasti

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

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von RobertG » Do 12. Dez 2019, 16:11

Hallo Wasti,

Deinem Beitrag entnehme ich, dass Du da irgendwo einen Anhang geplant hattest. Der fehlt allerdings. Eine einfache Beispieldatei wäre schon sinnvoll.

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

WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von WonneWasti » Do 12. Dez 2019, 17:29

Et voilá !

Ich weiß auch nicht warum nix angekommen ist.

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

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von RobertG » Do 12. Dez 2019, 17:40

Hallo Basti,

von wo nach wo soll denn nun in einem der Formulare die Datenkopie stattfinden?

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

WonneWasti
! Supporter - Spende !
Beiträge: 73
Registriert: So 1. Jan 2017, 11:34

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von WonneWasti » Do 12. Dez 2019, 18:03

Hallo, Robert,
die Feldinhalte sollen aus der Tabelle "Pflanzen" kommen.
Beim Kunden wird erst im oberen Listenfeld ein neuer Auftrag angelegt.
Dann steht eine SaisonID ( in der Filtertabelle) und eine KundenID (aktueller Datensatz in den Aufträgen ? ) fest. Dann sollen die Feldinhalte aus Datensätzen von "Pflanzen" kommen die die selbe KundenID und eine SaisonID um eins kleiner der aktuell vergebenen ist.

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

Re: Neue Datensätze aus alten, vorhandenen generieren.

Beitrag von RobertG » Do 12. Dez 2019, 20:20

Hallo Wasti,

so ganz verstanden habe ich das noch nicht. Aber eins scheint mir doch klar zu sein: Die vorhergehende Saison taucht bei Dir ja nicht in den Daten auf. Da kann ein Hauptformular also nichts an ein Unterformular weitergeben.
Wenn Du bei einem Saisonwechsel alle Daten aus der Vorsaison überträgst, dann muss da aber eine Sicherung eingebaut werden: Daten werden nur übertragen, wenn noch keine Daten mit der Saisonnummer existieren. Sonst bewegst Du Dich ja in einer Übertragungsschleife.
Das Ganze geht nur mittels Makro, so wie Du das auch schon mit dem Insert-Befehl aufgeschrieben hast. Zuerst musst Du natürlich mit einem SELECT feststellen, ob da bereits Datensätze bestehen. Der SELECT-Befehl sollte einfach die Anzajhl der Datensätze zählen, die für die betreffende Person in der betreffenden Saison eingetragen sind. Sind das mehr als 0, so wird der Insert-Befehl nicht ausgeführt. Wenn ich das richtig sehe, dann muss in dem Select-Befehl auf die Tabellen "Aufträge" und "Pflanzen" Bezug genommen werden:

Code: Alles auswählen

SELECT COUNT("Pflanzen"."PflanzenID") FROM "Pflanzen", "Aufträge" 
WHERE "Pflanzen"."PflAuftragsID" = "Aufträge"."AuftragsID" AND "Aufträge"."SaisonID" = ?
Die SaisonID ist in den Beziehungen nicht verknüpft. Da müsstest Du besser wissen, wie Du an die richtige ID kommst.

Schau einmal nach, wie das Grundgerüst für den Zugriff auf die Datenbank mit Makros erstellt wird,. Da sind ja genug Beispieldatenbanken in der Beschreibung dabei.

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


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