Datenbankanbindung CSV
Moderator: Moderatoren
Datenbankanbindung CSV
Hi !
Kann mir jemand erklären, wie die Datenbankanbindung mit csv-Dateien funktioniert?
Ich möchte eine Tabelle mit Grunddaten in Form einer csv-Datei als Datenquelle nutzen, und in meiner Tabelle mit Sverweis Werte daraus abfragen.
Die Werte einfach mit der Tabelle verknüpfen ist so lahm, und bläht die Datei irgendwie auf, und ich muß immer die csv erst in Calc konvertieren.
Danke !
Gruß, Zoidberg
Kann mir jemand erklären, wie die Datenbankanbindung mit csv-Dateien funktioniert?
Ich möchte eine Tabelle mit Grunddaten in Form einer csv-Datei als Datenquelle nutzen, und in meiner Tabelle mit Sverweis Werte daraus abfragen.
Die Werte einfach mit der Tabelle verknüpfen ist so lahm, und bläht die Datei irgendwie auf, und ich muß immer die csv erst in Calc konvertieren.
Danke !
Gruß, Zoidberg
Re: Datenbankanbindung CSV
Was genau meinst Du damit?Zoidberg hat geschrieben:.... und ich muß immer die csv erst in Calc konvertieren
Ich habe so einen ähnlichen Aufbau, aber ohne Datenquelle. Ich habe einfach in mein sCalc-Dokument eine neue Tabelle eingefügt mit der Option "verknüpfen" und diese Tabelle dann zu dem CSV-File verlinkt. Der gesamten eingefügten Tabelle habe ich einen Bereichsnamen verpasst, weil ich ja nicht weiss, wieviele Sätze das CSV-File jeweils mitbringt und in den SVERWEIS-Befehlen beziehe ich mich auf diesen Bereichsnamen.
Scheint mit zwar auch ein wenig schwerfällig, aber neu konvertieren muss ich nicht. Ich werde einfach beim Oeffnen der sCalc-Tabelle gefragt, ob ich die Daten akutalisiert haben will. Wenn ich weiss, dass seit der letzten Bearbeitung nichts geändert hat, übergehe ich das Aktualisieren, dann gehts ein wenig schneller.
Gruss, Lib
Ja, ist so. Wahrscheinlich ist "verknüpft" sowieso irreführend. Die Daten werden voll ins Tabellendokument integriert. Drum habe ich zuerst auch nicht geantwortet, weil das bei Dir offenbar zu Problemen führt.Zoidberg hat geschrieben:Aber es ist doch so, daß deine Datei vom Volumen her größer wird, sobald du sie mit der csv verknüpfst, oder ?
Nur sehe ich keinen anderen Weg. Ich wüsste nicht, wie man den Befehl SVERWEIS auf eine Tabelle ausserhalb des aktuellen Tabellendokumentes zugreifen könnte, meine Versuche dahingehend blieben jedenfalls erfolglos.
Gruss, Lib
Ich habe jetzt noch folgendes probiert:
1.
Eine SCALC-Datei erstellt (Datei1.sxc), darin eine Tabelle(Tabelle1), die mit einer CSV-Datei verknüpft ist.
Die Datensätze darin enthalten in Spalte A jeweils eine Kundennummer und in den Folgespalten Adressdaten.
2.
Eine zweite SCALC-Datei erstellt (Datei2.sxc), in der in Spalte A einige Kundennummern stehen.
3.
In Spalte B von Datei2.sxc den Befehl SVERWEIS eingegeben:
Das funktioniert nun zwar auch, aber obwohl ich im Dokument Datei2.swc nun nur die paar Datensätze sehe, die ich hier erfasst und mit SVERWEIS ergänzt habe, ist die Datei genauso gross als hätte ich die ganze Datei1.sxc mit drin. Ich vermute mal, dass OO das auch so (integriert) speichert.
Gruss
1.
Eine SCALC-Datei erstellt (Datei1.sxc), darin eine Tabelle(Tabelle1), die mit einer CSV-Datei verknüpft ist.
Die Datensätze darin enthalten in Spalte A jeweils eine Kundennummer und in den Folgespalten Adressdaten.
2.
Eine zweite SCALC-Datei erstellt (Datei2.sxc), in der in Spalte A einige Kundennummern stehen.
3.
In Spalte B von Datei2.sxc den Befehl SVERWEIS eingegeben:
Code: Alles auswählen
=SVERWEIS($A1;'file///PfadZurDatei/Datei1.sxc'Tabelle1.$A$:$W$7000;2)
Gruss
Na ja, wenn Du dich auf eine Datenquelle beziehst, wird diese nicht in der Tabelle mit abgespeichert.
Aber Du kannst dich mit irgendwelchen Formeln nicht auf eine Datenbank beziehen. Das Formelsystem basiert ja auf Zelladressen, nicht auf Datenbankfeldern.
Ob SVERWEIS oder was auch immer, Du brauchst Tabellenname, Spalten-ID und Zeilennummer um eine Funktion zu formulieren.
D.h., bevor Du eine Funktion eingibst, musst Du die Daten in der aktuellen oder in sonst einer sCalc-Tabelle haben und damit sind wir wieder am Anfang des Problems.
Vielleicht musst Du einfach mal genauer beschreiben, um was es geht.
Gruss, Lib
Aber Du kannst dich mit irgendwelchen Formeln nicht auf eine Datenbank beziehen. Das Formelsystem basiert ja auf Zelladressen, nicht auf Datenbankfeldern.
Ob SVERWEIS oder was auch immer, Du brauchst Tabellenname, Spalten-ID und Zeilennummer um eine Funktion zu formulieren.
D.h., bevor Du eine Funktion eingibst, musst Du die Daten in der aktuellen oder in sonst einer sCalc-Tabelle haben und damit sind wir wieder am Anfang des Problems.
Vielleicht musst Du einfach mal genauer beschreiben, um was es geht.
Gruss, Lib
vielen dank auf jeden Fall schon mal für die ganze Mühe!
Hier eine kleine Problemschilderung:
ich habe eine Grundtabelle mit Artikeln und Informationen über die Artikel. diese soll als datenbankquelle gespeichert werden. diese hat ca 700kb, weshalb ich sie nicht in jeder datei mitspeichern möchte.
nun habe ich ein rohformular, in das ich untereinander verschiedene Artikelnummern eintrage. Die liste soll automatisch mit den angaben zu den artikeln ausgefüllt werden. Ich muß diese bestimmte zusammenstellung dann speichern, sie dient also nicht nur als schnell auszudruckende liste. wie stell ich das am besten an ?
Danke !
Hier eine kleine Problemschilderung:
ich habe eine Grundtabelle mit Artikeln und Informationen über die Artikel. diese soll als datenbankquelle gespeichert werden. diese hat ca 700kb, weshalb ich sie nicht in jeder datei mitspeichern möchte.
nun habe ich ein rohformular, in das ich untereinander verschiedene Artikelnummern eintrage. Die liste soll automatisch mit den angaben zu den artikeln ausgefüllt werden. Ich muß diese bestimmte zusammenstellung dann speichern, sie dient also nicht nur als schnell auszudruckende liste. wie stell ich das am besten an ?
Danke !
Mit den simplen Serienbrief-Funktionen, also ohne Makro-Geschichten,
sehe ich nur den Weg:
Deine Ausgangstabelle liegt als Datenquelle vor.
Du erstellst ein Text-Dokument für die Aufnahme der Artikelinfos.
Da hinein fügst Du eine Writer Tabelle ein mit sovielen Zeilen, wie pro Dokument denkbar sind oder bis die ganze Seite gefüllt ist.
Jetzt gestaltest Du die erste Tabellenzeile so wie Du willst und setzt alle benötigten Datenfelder hinein (wenn Du das noch nie gemacht hast, gib Bescheid).
Als letzten Eintrag der ersten Tabellenzeile fügst Du einen Feldbefehl "nächster Datensatz" ein.
Diese Tabellenzeile markierst Du und kopierst sie in alle Folgezeilen.
Wenn Du jetzt diese Tabelle füllen willst, wählst Du in der Datenquelle die entsprechenden Datensätze aus (über einen Filter, eine Abfrage oder durch Einzel-Markierung) und drückst den Button: Daten in Felder.
Ob das ein gangbarer Weg ist, hängt davon ab, wie einfach (oder eben nicht) sich die Datensatz-Auswahl gestaltet.
Der Effekt, dass Du eine Nr. eingibst und dann bekommst Du automatisch gewisse Datensatzinhalte zu dieser Nummer, geht direkt wirklich nur mit SVERWEIS in einem Tabellendokument. Ansonsten geht es ohne Programmierung nicht.
Als Bastel-Version könnte ich mir noch sowas vorstellen:
Du hast Deine Riesen-Datei mit der verlinkten Tabelle, die auf das CSV-File zeigt. Darin eine zweite Tabelle, in der Du Deine SVERWEIS-Befehle untergebracht hast.
Das ganze speicherst Du als Vorlage.
Wenn Du dann ein neues Tabellendokument daraus ableitest und die Artikelnummern in der SVERWEIS-Tabelle angepasst hast, markierst Du diese ganze Tabelle, kopierst alles und überschreibst das ganze dann mit Bearbeiten/Inhalte einfügen, wobei Du "Formeln" abwählst, sodass statt der SVERWEIS-Befehle die wirklichen Inhalte in den Zellen stehen. Anschliessend kannst Du in dem Dokument die Tabelle mit dem Link zur CSV-Datei löschen. Wenn Du diese Datei nun speicherst, müsste sie erheblich kleiner sein.
Bei Lösungswegen mit Makros kann ich leider nicht behilflich sein.
gruss, Lib
sehe ich nur den Weg:
Deine Ausgangstabelle liegt als Datenquelle vor.
Du erstellst ein Text-Dokument für die Aufnahme der Artikelinfos.
Da hinein fügst Du eine Writer Tabelle ein mit sovielen Zeilen, wie pro Dokument denkbar sind oder bis die ganze Seite gefüllt ist.
Jetzt gestaltest Du die erste Tabellenzeile so wie Du willst und setzt alle benötigten Datenfelder hinein (wenn Du das noch nie gemacht hast, gib Bescheid).
Als letzten Eintrag der ersten Tabellenzeile fügst Du einen Feldbefehl "nächster Datensatz" ein.
Diese Tabellenzeile markierst Du und kopierst sie in alle Folgezeilen.
Wenn Du jetzt diese Tabelle füllen willst, wählst Du in der Datenquelle die entsprechenden Datensätze aus (über einen Filter, eine Abfrage oder durch Einzel-Markierung) und drückst den Button: Daten in Felder.
Ob das ein gangbarer Weg ist, hängt davon ab, wie einfach (oder eben nicht) sich die Datensatz-Auswahl gestaltet.
Der Effekt, dass Du eine Nr. eingibst und dann bekommst Du automatisch gewisse Datensatzinhalte zu dieser Nummer, geht direkt wirklich nur mit SVERWEIS in einem Tabellendokument. Ansonsten geht es ohne Programmierung nicht.
Als Bastel-Version könnte ich mir noch sowas vorstellen:
Du hast Deine Riesen-Datei mit der verlinkten Tabelle, die auf das CSV-File zeigt. Darin eine zweite Tabelle, in der Du Deine SVERWEIS-Befehle untergebracht hast.
Das ganze speicherst Du als Vorlage.
Wenn Du dann ein neues Tabellendokument daraus ableitest und die Artikelnummern in der SVERWEIS-Tabelle angepasst hast, markierst Du diese ganze Tabelle, kopierst alles und überschreibst das ganze dann mit Bearbeiten/Inhalte einfügen, wobei Du "Formeln" abwählst, sodass statt der SVERWEIS-Befehle die wirklichen Inhalte in den Zellen stehen. Anschliessend kannst Du in dem Dokument die Tabelle mit dem Link zur CSV-Datei löschen. Wenn Du diese Datei nun speicherst, müsste sie erheblich kleiner sein.
Bei Lösungswegen mit Makros kann ich leider nicht behilflich sein.
gruss, Lib