Datenbankanbindung CSV

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Zoidberg
**
Beiträge: 36
Registriert: Do, 29.01.2004 16:34
Wohnort: Gummersbach

Datenbankanbindung CSV

Beitrag von Zoidberg »

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
Zoidberg
**
Beiträge: 36
Registriert: Do, 29.01.2004 16:34
Wohnort: Gummersbach

Beitrag von Zoidberg »

Scheint wohl doch was schwerer zu sein :(
TenBaseT
****
Beiträge: 128
Registriert: Mo, 08.03.2004 10:01

Beitrag von TenBaseT »

Nee, gar nicht. Du mußte eine Datenquelle definieren (Extras / Datenquelle / Neue Datenquelle). Habe mir das gerade einmal angesehen und mich nur gewundert, wieviele Einstellungen man für so eine blöde Textdatei vornehmen kann.

Probier's mal. Wenns nicht klappt, meld dich noch einmal.

Hans
Zoidberg
**
Beiträge: 36
Registriert: Do, 29.01.2004 16:34
Wohnort: Gummersbach

Beitrag von Zoidberg »

Das Problem ist, ich kann nicht auf die Daten zugreifen. mit Formeln und Funktionen aus meinem Tabelleblatt meine ich. Ich kapier das einfach nicht.
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Re: Datenbankanbindung CSV

Beitrag von Lib »

Zoidberg hat geschrieben:.... und ich muß immer die csv erst in Calc konvertieren
Was genau meinst Du damit?
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
Zoidberg
**
Beiträge: 36
Registriert: Do, 29.01.2004 16:34
Wohnort: Gummersbach

Beitrag von Zoidberg »

Aber es ist doch so, daß deine Datei vom Volumen her größer wird, sobald du sie mit der csv verknüpfst, oder ?
Ich hoffe halt das es als Datenquelle definiert nicht so ist, und schneller funktioniert. Nur ich kann nicht an die Daten ran außer per Drag and Drop, was mir aber nicht weiterhilft.
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Beitrag von Lib »

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 ?
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.
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
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Beitrag von 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:

Code: Alles auswählen

=SVERWEIS($A1;'file///PfadZurDatei/Datei1.sxc'Tabelle1.$A$:$W$7000;2)
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
Zoidberg
**
Beiträge: 36
Registriert: Do, 29.01.2004 16:34
Wohnort: Gummersbach

Beitrag von Zoidberg »

Und genau diese tatsache, daß die datei genauso groß wird wie die verknüpfte stört mich. meine datentabelle hat als csv. ca. 700 kb

das ist das problem. geht das mit der datenbankanbindung besser ?
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Beitrag von Lib »

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
Zoidberg
**
Beiträge: 36
Registriert: Do, 29.01.2004 16:34
Wohnort: Gummersbach

Beitrag von Zoidberg »

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 !
Lib
******
Beiträge: 606
Registriert: Mi, 06.08.2003 20:18

Beitrag von Lib »

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
Antworten