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

[gelöst] Zyklischer Import von Daten

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

[gelöst] Zyklischer Import von Daten

Beitrag von deife » Di 5. Jan 2021, 17:04

Hallo Leute,

ich mühe mich schon einige Zeit mit dem Problem ab und komme kein Stück weiter. Bisher habe ich die Daten in Calc und wollte diese jetzt auf Base rüberziehen. Das hat auch gut funktioniert - im wörtlichen Sinne. Ich habe Calc und Base geöffnet und das Tabellenblatt aus Calc in das Tabellenfenster in Base gezogen.

Dabei gibt es anscheinend ein paar Feinheiten. Wenn ich die Daten unverändert lasse, dann klappt es. Aber wenn ich einen Primärschlüssen möchte, dann kommt die Fehlermeldung, dass das SQL-Statement zu lang ist. Tatsächlich habe ich in meinem aktuellen Datensatz ein Textfeld mit ca. 700 Zeichen.

Seltsam finde ich auch, dass das Datenformat der Spalte aus Calc nicht übernommen wird. So sind in einer Spalte nur Datumangaben. Beim Import in Base sind alle Spalten als Text-Spalten angelegt. Wenn ich diese dann nachoptimiere und DATE daraus mache, dann erscheint eine Fehlermeldung (Formatfehler) beim Versuch Daten anzuhängen.

Mit der Standard-Variante habe ich zwar die Daten drin, aber es handelt sich dabei um meine Kontoauszüge, die ich im Nachgang in Kategorien einteilen möchte, ähnlich wie ein Haushaltsbuch. D.h. alle paar Monate müsste ich den CSV-Export meiner Bank in diese Datenbank importieren und ich hab keine Ahnung wie das gehen soll (direkt, über separate Tabelle und Abfrage, Makro, ...???).

Vielleicht noch etwas zu mir. Ich habe früher viel mit Access gemacht und hatte nicht erwartet, dass es eine so schwere Geburt wird.

Vielen Dank im voraus.

Grüße
deife
Zuletzt geändert von deife am Sa 6. Feb 2021, 11:12, insgesamt 1-mal geändert.

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Zyklischer Import von Daten

Beitrag von Pit Zyclade » Di 5. Jan 2021, 17:13

Eigentlich sind das mehrer Fragen und eigentlich hast du nicht erklärt, was du unter "zyklischem Import" verstehst.

Du kannst also korrekt deine calc-Tabelle in eine Base-Tabelle überführen (ja/nein).
Wenn du dann eine weitere Base-Tabelle gleicher Bauart mit anderen Spalteneigenschaften erzeugst und dann die Spalten von der einen in die andere übeträgst ?
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

Re: Zyklischer Import von Daten

Beitrag von deife » Di 5. Jan 2021, 17:39

naja, der zyklische Import wäre, dass es sich nicht um eine einmalige Konvertierung von Calc auf Base handelt, sondern dass es jeden Monat eine neue CSV bzw. Calc-Datei gibt, deren Daten in Base an eine bestehende Tabelle angehängt werden sollen.

die Daten aus Calc werden in Base eingefügt, aber für meine Zwecke unbrauchbar, weil ich einen Primärschlüssel brauche. Sobald ich den Primärschlüssen erzeugen lasse, funktioniert der Import nicht mehr.

Auch kann ich die Datensätze aus der Tabelle ohne Primärschlüssel nicht in eine Tabelle mit Primärschlüssel kopieren, weil dann die Fehlermeldung kommt:

Code: Alles auswählen

Attempt to insert null into a non-nullable column: column: ID table: Tabelle12 in statement [INSERT INTO "Tabelle12" ( "alle Spalten bis auf ID....") VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]

deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

Re: Zyklischer Import von Daten

Beitrag von deife » Di 5. Jan 2021, 17:44

Jetzt hab ich es geschafft. Hatte den Autowert vergessen. Meine Vorgehensweise ist jetzt so:
1. CSV mit Calc öffnen
2. Calc Tabellenblatt in Base ziehen
3. importiere Tabelle auf Tabelle mit Primärschlüssel ziehen
4. Anpassen der Spaltenzuordnung, weil die neue Tabelle eine Spalte mehr hat (ID), etwas mühsam, weil die markierte Zeile immer wieder wegspringt.
5. Import starten

Etwas mühsam. Gibt es dafür einen einfacheren Weg?

deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

Re: Zyklischer Import von Daten

Beitrag von deife » Di 5. Jan 2021, 17:45

hab gerade festgestellt, dass die Formatanpassung der Datumsspalte auf das Base-Datum nicht funktioniert. Es erscheint folgende Fehlermeldung:

Code: Alles auswählen

SQL-Status: 37000
Fehlercode: -16

Wrong data type: java.lang.IllegalArgumentException
Soll ich dazu ein ein neues Thema erstellen?

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

Re: Zyklischer Import von Daten

Beitrag von RobertG » Di 5. Jan 2021, 18:19

Hallo deife,

zuerst einmal zu der Reihenfolge beim Importassistenten: Der geht stumpf nach der Reihenfolge, die die Felder in den Tabellen haben. Die einfachste Lösung wäre also, genau die gleiche Feldreihenfolge in der Tabelle zu nehmen wie in der Vorlage und das Feld für den Primärschlüssel hinten an zu hängen. Alternativ packst Du bei Deiner Calc-Datei eine Spalte "ID" davor - ohne Inhalt.

Ich habe mir übrigens so einen *.csv-Import auch schon einmal per Makro zusammengebaut. Muss mal sehen, dass ich das wieder ausgrabe und mit einer richtigen Beschreibung versehe. Ich habe das für Sportwettbewerbe gemacht, bei denen die Meldungen als *.csv-Datei abgegeben werden sollten.

Zum Datumsformat: Zeige doch einmal an, wie das denn in der Vorlage aussieht - am besten eine Calc-Datei mit einem so eingelesenen Datum. Braucht ja nur genau das Datum zu sein.

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

deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

Re: Zyklischer Import von Daten

Beitrag von deife » Di 5. Jan 2021, 19:11

Hallo Robert,

das mit der leeren Spalte in Calc hat beim ersten Test super funktioniert.

Was ist mit dem Datumsformat gemeint? in Calc ist die Zellformatierung auf Datum TT.MM.JJ und in Calc kommt Text an. Nachträgliches ändern klappt leider nicht.

Grüße
deife

deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

Re: Zyklischer Import von Daten

Beitrag von deife » Di 5. Jan 2021, 19:14

Irgendwie hab ich schon zuviel hin und her probiert.

Zwischenzeitlich habe ich wieder die Meldung bekommen, dass die Länge des SQL Statements zu lang ist, dann ich Base mal abgestürzt und jetzt klappt auch der Import der Datumsspalten..... ???

momentan sieht es gut aus.

danke.

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

Re: Zyklischer Import von Daten

Beitrag von RobertG » Di 5. Jan 2021, 20:06

Hallo deifie,

ich nehme an, dass der Import nach Calc aus der *.csv-Datei bereits ein Datum als Text erzeugte. Ich weiß nicht auswendig, welche Optionen da alle dabei sind, die Du während des Imports der *.csv-Datei nach Calc nutzen kannst.

Text in Calc erkennst Du in der Regel daran, dass dann in der Eingabezeile von Calc vor dem Datum ein ' seteht, also z.B. '05.01.12

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

deife
Beiträge: 22
Registriert: Di 5. Jan 2021, 16:48

Re: Zyklischer Import von Daten

Beitrag von deife » Mi 6. Jan 2021, 08:52

Hallo Robert,

ja, beim Import in Calc kann man für die Spalte das Zellenformat angeben. Das mit dem ' konnte ich nicht nachvollziehen, aber ein Datum ist standardmäßig rechtsbündig und ein Text ist linksbündig.

Ich hab soviel hin und her probiert, dass ich gar nicht mehr weiß, wie die Rahmenbedingungen genau waren. Sicher ist jedoch, dass die Zellenformatierung aus Calc nicht nach Base übernommen wird, sondern alles als TEXT importiert wird. Stelle ich mir auch etwas schwierig vor, weil in Calc jede einzelne Zelle theoretisch ein andere Format haben könnte.

Aber wenn die importierte Datenstruktur angepasst wird und anschließend mit "Daten anhängen" der Import neu gestartet wird, dann klappt es. Warum es bei mir zuerst nicht funktioniert hat, kann ich nicht mehr nachvollziehen. Vielleicht habe ich beim Einlesen der CSV die Angabe DATUM vergessen. Oder mit der Datei selbst hat etwas nicht gestimmt, weil es anscheinend einen Unterschied macht, ob ich das Tabellenblatt in Calc von einer CSV- oder einer ODS-Datei ist.

Ich mach mal weiter, war sicher nicht die letzte Frage....
Danke

Grüße
deife


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