Seite 1 von 1

Tabelle in eine Datenbank übernehmen

Verfasst: Sa 7. Jul 2018, 20:44
von LeTreo
Guten Abend!
Entschuldigt, wenn das Thema möglicherweise (wahrscheinlich) schon oft behandelt wurde. Ich konnte aber unter meinen Suchen nichts passendes finden, oder es hat nicht funktioniert.

Zuerst: Ich arbeite mit Windows 10 und LO 4.4.

Mein Plan:
Ich möchte mit Hilfe einer Datenbank ein Formular erstellen. Damit möchte ich Datensätzen aus einer (sehr großen) Artikelliste mit Kunden und bestellter Anzahl verbinden.
Also ein Suchfeld um den Datensatz in der Artikelliste zu finden und anzuzeigen und eingabefelder für "Kunde" und "Anzahl".
Später sollen dann noch Berichte erstellt werden.

Als Hilfe habe ich mir Die Datei "Entwurf einer Datenbank" (http://www.openoffice.org/de/doc/oooaut ... enbank.pdf) herunter geladen und habe auch im großen und ganzen verstanden, was ich machen muss.

1) Eine Base-Datenbank erstellen mit mit einer Tabelle für die Bestellungen mit den Feldern "ID" als Primärschlüssel, "Kunde", "Anzahl" und "ArtikelID". Mit dem letzten Feld soll in einer zweiten Tabelle der ausgewählte Datensatz über die Artikelnummer (als Primärschlüssel dieser Datei) verknüpft werden.

Soweit, so erfolgreich. in der erwähnten Beispieldatenbank wird dann eine zweite Tabelle erstellt.(Im Beispiel die Tabelle "Typ") Ich möchte jetzt, statt hier eine Tabelle zu erstellen, eine vorhandene Datei (wird wöchentlich aktualisiert) nehmen. in der ersten Spalte stehen die Artikelnummern, die zum Primärschlüssel dieser Datei werden sollen um sie in der 1. Tabelle mit dem Feld "ArtikelID" zu verknüpfen.

Mein Problem ist jetzt, wie ich diese Tabelle "in die Datenbank" bekomme. Ich habe es versucht mit:
-Neue Datenbank erstellen und die Tabelle mit drag and drop in die eigentliche Datenank ziehen.
-In der Datenbank eine zweite Tabelle anlegen mit einem einfachen Feld um dann die gewünschte Tabelle hinein zu kopieren, oder
mit der Maus "darüberzulegen".

Mehrere Möglichkeiten die so im Netz beschrieben werden, die aber nur den Erfolg hatten, dass LO abgestürzt ist, sich aufgehängt hat, oder Tatsächlich die Tabelle da war, aber nicht bearbeitet werden kann, um z.B. den Primärschlüssel fest zu legen.

Ich weiß, das ist alles sehr ungenau, aber ich kann es nicht besser beschreiben. :?

Die Tabelle ist sehr groß (mehrere tausend Datensätze) und kommt als .dbf Datei. Habe alles in eine calc Tabelle kopiert, funktioniert aber trotzdem nicht.

Ich hoffe, mein Problem ist deutlich geworde, und würde mich über Tips freuen.
Danke! ;)

Re: Tabelle in eine Datenbank übernehmen

Verfasst: So 8. Jul 2018, 11:34
von nikki
Hallo,

lade Dir das Handbuch für BASE herunter, dort findest Du alle Informationen.

Re: Tabelle in eine Datenbank übernehmen

Verfasst: So 8. Jul 2018, 16:26
von RobertG
Hallo LeTreo,

wenn der Import nicht klappt, dann müsste eine Fehlermeldung erscheinen. Ich würde mir das mit dem Import aber genau überlegen, denn Du schreibst, dass die Tabelle laufend erneuert wird. Das ist für die interne HSQLDB-Datenbank ein Problem, wenn Du die Beziehungen vordefinierst. Dann steht in der Kunde - Artikel - Tabelle eine "ArtikelID", die bei einem erneuten Einlesen überschrieben wird. Ich habe die Befürchtung, dass da der Importassistent überfordert ist.

Alternative wäre, das Ganze direkt mit der *.dbf-Datei zu versuchen. Du erstellst eine Basedatei, die auf eine dBase-Datenbank zugreift, die ihre Tabellen aus einem Verzeichnis ausliest. Die laufend zu erneuernde Datei packst Du in dieses Verzeichnis. Dann kannst Du die Tabelle beliebig oft tauschen und daneben die Tabelle liegen haben, die die Kunde-Artikel-Beziehung enthält.

Gruß

Robert

Re: Tabelle in eine Datenbank übernehmen

Verfasst: Mo 9. Jul 2018, 13:43
von LeTreo
Hallo Nikki, die Idee hatte ich tatsächlich auch....

Hallo RobertG!
Genau so will ich das machen, aber es ist mir nicht gelungen.
Ich erstelle also eine Datenbank, darin eine Tabelle wie oben unter 1) beschrieben.
-Dann erstelle ich eine neue Datenbank, in dem ich die *.dbf Datei öffne, eine neue Datenbank erstelle (Die Datenbank soll angemeldet werden) und diese speichere.
Jetzt müsste ich doch in dieser Datenbank die Artikelnummer als Primärschlüssel einrichten. Wenn ich aber die Tabelle im "Bearbeiten"-Modus öffne, kann ich dort nichts ändern.

Und wie veranlasse ich, dass die Kundendatenbank auf diese andere Datenbank zugreift?
Dachte, beide Tabellen müssten in einer Datenbank erscheinen?

Oder geht das dann bei der Erstellung eines Formulars?
Irgendwie habe ich da ein Verständnisproblem...

Danke für die Geduld!
(Komme leider nicht so oft dazu, länger am Rechner zuhause zu sitzen, darum kann es manchmal etsas dauern, bis ich mich wieder melde.)

Re: Tabelle in eine Datenbank übernehmen

Verfasst: Mo 9. Jul 2018, 13:55
von RobertG
Hallo LeTreo,

dBase kennt keine Primärschlüssel. Es kann also ohne weiteres passieren, dass die gleiche Artikelnummer mehrmals vorkommt.

Wenn Du wirklich immer wieder diese dBase-Tabelle austauschen wirst, dann musst Du die 2. Tabelle ebenfalls als dBase-Tabelle (über Base) erstellen. Schlüsselwerte brauchst Du dort aber nicht. Schau dann aber auch, ob das, was dabei heraus kommt, tatsächlich Deinen Wünschen entspricht. Für dBase stehen in LOBase längst nicht die Funktionalitäten zur Verfügung, die die HSQLDB bietet.

Gruß

Robert

Re: Tabelle in eine Datenbank übernehmen

Verfasst: Mo 9. Jul 2018, 18:42
von LeTreo
Danke, für die Erläuterung. Dann ist es also so nicht möglich, mein Problem zu lösen.
Darf ich, ohne ein neues Thema auf zu machen, noch mal genauer erläutern, was ich möchte?

Es gibt keine feste Kundendatei.
Bestellungen werden nur am Wochenende aufgenommen. (Es geht um Vereinsarbeit.)
Am Freitag wird vom Lieferanten die Artikelliste heruntergeladen. Da wir von den 34 Spalten nur 9 mit für uns relevanten Informationen benötigen, kopieren wir diese Zeilen in eine vorfomatierte Vorlagendatei. Beim speichern wird die vorherige Version überschrieben.

Für Bestellungen wird über das Suchfeld der entsprechende Artikel gesucht und in eine leere Bestelldatei (Auch aus einer formatierten Vorlage) kopiert, um die bestellte Anzahl und, falls nicht für den eigenen Bestand, um den Kundennamen ergänzt.

Die so gefüllte Tabelle wird für das Archiv gespeichert.
Für das Bestellschreiben an den Lieferanten gibt es in der Bestelldatei eine zweite Tabelle, in die automatisch die für die Bestellung relevanten fünf Spalten übernommen werden. Diese Tabelle wird dann in ein Writer-Anschreiben als formatierter Text einkopiert. Dieses Schreiben wird per mail verschickt und auch fürs Archiv gespeichert.
Zum Abschluss wird eine neue, leere Bestelldatei generiert und es geht am Freitag wieder von vorne los.

Diese ganze hin- und herkopiererei würde ich gerne vereinfachen. Mein Traum ist eine Eingabemaske zur Aufnahme der Bestellungen, eine zum bearbeiten der Datensätze (Anzahl einer Bestellung nachträglich ändern oder einen Datensatz wieder löschen.)
Erstellen von zwei Berichten (Einmal die Kompletten Bestellungen der Woche und einmal als Bestellformular für den Lieferanten) und am Ende alles wieder "auf null" zu setzen und mit der Aktualisierung der Artikelliste wieder zu beginnen.

Sollte es dafür keine Lösung geben ?
(Das Problem scheintja eben das "auf null setzen" zu sein.

Re: Tabelle in eine Datenbank übernehmen

Verfasst: Di 10. Jul 2018, 07:45
von RobertG
Hallo LeTreo,

vielleicht stellst Du einfach einmal so eine (deutlich abgespeckte) *.dbf-Datei hier zur Verfügung. Kannst mir das auch per Mail direkt schicken, wenn Du die Daten nicht für alle zugänglich haben willst.

Bei der Konstruktion, die ihr vorhabt, benötigt ihr doch anschließend nicht mehr irgendwelche Tabellen sondern die Writer-Anschreiben oder auch *.pdf-Dateien, die darüber Aufschluss geben, was gekauft wurde.

Einfacher als bisher wird das alles aber erst dann, wenn die Datenbankdatei mit ein paar Makros angereichert wird, die das Umkopieren der Daten übernehmen.

Gruß

Robert