Datenbank erstellen

Hallo Gemeinde,

ich möchte mit OO Base eine Inventar-Datenbank erstellen.

Leider steige ich nicht so recht dahinter, wie ich das Ganze aufbauen muss, so dass am Ende das gewünschte Ergebnis herauskommt.

Eine Liste in Form einer Calc-Tabelle existiert schon, darauf aufbauend soll nun die DB erstellt werden.

Die Tabelle hat folgende Felder:

Artikel(bezeichnung) [Textfeld]
Modell(nummer/-kennung) [Textfeld]
Bestand [Zahl]
Standort [Textfeld]
0870
6800

So weit, so gut.

Am Ende sollte es drei (?) Formulare geben, in denen die jeweils relevanten Infos angezeigt und u.U. geändert werden können.

  1. Bestand/Information
  2. Wareneingang
  3. Warenentnahme

Und ich habe keine Ahnung, wie wo was verknüpft oder was-auch-immer werden muss, damit das am Ende funktioniert.

Was muss in die Tabelle(n), wo ist mein per Assistent erstelltes Formular, nachdem ich auf Fertigstellen klicke?, wozu ist eine Abfrage, wenn es doch Formulare gibt, etc…?

Jeder Artikel ist entweder Geschäftsausstattung (0870) oder Büromaterial (6900), d.h. ich brauche eine Art Optionsfeld.

Für den Standort stelle ich mir ein Auswahlfeld vor, welches erweiterbar ist.

Meine Befürchtung ist nun generell, dass ich eine einmal angelegte Struktur nur mit großem Aufwand wieder ändern (erweitern, verknüpfen, optimieren) kann.

Wer kann mir da einen Ansatz liefern, was man bei der Planung berücksichtigen muss und was evtl. auch später noch zu ändern ist?

Da ich, wie gesagt, keine Ahnung von DB habe, kann ich auch nicht wissen, welche Infos ihr evtl. noch benötigt, also einfach fragen, sofern ihr noch mehr Details für eine Antwort benötigt, ok?

LG, Marcel

Sorry keine ahnung

ich bin nicht mehr als experte anfragbar, tut mir leid.
m.

Hallo Marcel,

mit OO Base kenne ich mich leider nicht aus.

In Access, MySQL könnte iches dir erklären.

I.d.R. musst du die Datenbank an das Formular binden.
Auch ist es möglicj, sog. Querys also Abfragen an das Formular zu binden.
Wie das aber mit OpenOffice Base funktioiert, kann ich dir nicht sagen.

Evtl. gibt eine eine OO Hilfe, die duaufrufen kannst.

Auch würde ich dir empfehlen die Grundlagen von Datenbanken zu erlernen. Das würde es auch leichter für dich sein, die Lösung u.U. selbst zu fiden.

Evtl. kann dir jemand mit OO Kentnisse besser helfen.

Gruß
Thomas

Hallo,
das ist leider nicht meine Baustelle…
Viel Glück weiter
Wolfgang

Hi Marcel!

Ich hatte recht wenig Zeit, habe also ein paar Annahmen getroffen und eine Beispiel-DB für dich erstellt.

Um für zukünftige Änderungen gewappnet zu sein, ist es sinnvoll, alles, was du hier als „Optionsfeld“ erstellen würdest, gleich in eine eigene Tabelle auszulagern.

D.h. ich würde folgende Tabellen erstellen:
Artikel
Standort
Artikelart
und aufgrund meiner Annahmen: Bestandsaenderung

In der Artikeltabelle baust du nur einen „Verweis“ auf die Artikelart und den Standort ein mit einer Spalte „id_artikel“ und „id_standort“. In der Artikel-, Standort- und Artikelart-Tabelle gibt es jeweils eine Spalte „id“ vom Typ zahl (oder noch besser bigint).

In der Artikel-Tabelle trägst Du in der Tabelle id_standort dann immer nur die id aus der Standort-Tabelle ein und analog in id_artikelart die id aus der Artikelart-Tabelle.

Auf dieselbe Art solltest Du vorgehen, wenn du wirklich Warenein- und -ausgänge speichern willst.
Dafür am besten eine Tabelle „Bestandsaenderungen“ erzeugen, mit den Spalten:

id zahl (numeric)
id_artikel bigint
bestandsaenderung numeric
datum datumzeit
aenderungsinfo text (varchar)

du kannst damit für jeden artikel alle aenderungen (ein- und ausgänge) durch positive oder negative werte in der spalte „bestandsaenderung“ darstellen ohne die artikel-tabelle angreifen zu müssen.

in der artikel-tabelle würde ich nur eine spalte „startbestand“ erzeugen, die den initialwert (z.b. der bei der ersten inventur festgestellte) enthält.
der aktuelle bestand kann dann immer durch die berechnung „startbestand“ + summe der bestandsänderungen des artikels dargestellt werden.

formulare/abfragen:
du „befüllst“ formulare entweder mit tabelleninhalten oder abfragen.
bei optionsfeldern benötigst du meist eine abfrage, weil du ja nur 1 oder wenige spalteninformationen in solchen optionsfeldern haben willst.

für weitere details schick mir deine email-adresse, dann sende ich dir meine test-datenbank, die bereits die tabellen und ein paar abfragen, etc. enthält.

lg
Georg

Hallo Marcel,

mit OO Base kenne ich mich leider nicht aus.

In Access, MySQL könnte iches dir erklären.

Vielleicht melde ich mich ja in den nächsten Wochen wieder, wenn wir MS Office bekommen haben… :wink:
Chef hat die Nase voll von OO…

I.d.R. musst du die Datenbank an das Formular binden.
Auch ist es möglicj, sog. Querys also Abfragen an das Formular
zu binden.

WAS geht weiß ich schon (was meine Absichten angeht), nur mit dem WIE hab ich so meine Probleme…!

Wie das aber mit OpenOffice Base funktioiert, kann ich dir
nicht sagen.

Evtl. gibt eine eine OO Hilfe, die duaufrufen kannst.

Die ist nicht gerade zielführend, leider. Die Schrift auf der F1-Taste ist schon fast ab, aber wirkliche Aha-Erlebnisse hat sie mir bis jetzt noch nicht verschaffen können…

Auch würde ich dir empfehlen die Grundlagen von Datenbanken zu
erlernen. Das würde es auch leichter für dich sein, die Lösung
u.U. selbst zu fiden.

das ist ein - hoffe ich mal - einmaliges Projekt auf Arbeit und soll am Ende einfach nur funktionieren, so dass man jeden Ein- und Ausgang festhalten und einen Überblick über den Bestand bekommen kann.Für einmalige Sachen zieh ich mir nicht ein komplettes Benutzerhandbuch rein, von dessen Inhalt ich 80% sicher nicht für die Erledigung der Aufgabe benötige.
Ansonsten hast du aber vollkommen recht: erst lesen, dann fragen…

Evtl. kann dir jemand mit OO Kentnisse besser helfen.

Dein Wort in Gottes Gehörgang! Sieht aber ganz gut aus… :smile:

Gruß
Thomas

Trotzdem vielen Dank, dass du dir die Zeit genommen hast für eine Antwort.

LG, Marcel

Hi Marcel!

Hi Georg!

Ich hatte recht wenig Zeit, habe also ein paar Annahmen
getroffen und eine Beispiel-DB für dich erstellt.

WO? Wo? Wo? Wo? :stuck_out_tongue:

Um für zukünftige Änderungen gewappnet zu sein, ist es
sinnvoll, alles, was du hier als „Optionsfeld“ erstellen
würdest, gleich in eine eigene Tabelle auszulagern.

Ich habe auch schon gehört, dass man Filter als Tabelle „designen“ kann, aber schon beim Versuch, die Raumauswahl derart zu gestalten (Listenfeld mit Tabelle verknüpfen) scheitere ich. Das LF öffnet sich schlicht u ergreifend einfach nicht! Die Tabelle hat eine Spalte mit den Raumnummern als Werte.

D.h. ich würde folgende Tabellen erstellen:
Artikel
Standort
Artikelart
und aufgrund meiner Annahmen: Bestandsaenderung

Artikelstammdaten hab ich bereits. Dort sind alle DS gespeichert. Nr, Bezeichnung, Beschreibung, Bestand, Mindestbestand, Büromaterial (als boolean)

In der Artikeltabelle baust du nur einen „Verweis“ auf die
Artikelart und den Standort ein mit einer Spalte „id_artikel“
und „id_standort“. In der Artikel-, Standort- und
Artikelart-Tabelle gibt es jeweils eine Spalte „id“ vom Typ
zahl (oder noch besser bigint).

In der Artikel-Tabelle trägst Du in der Tabelle id_standort
dann immer nur die id aus der Standort-Tabelle ein und analog
in id_artikelart die id aus der Artikelart-Tabelle.

Auf dieselbe Art solltest Du vorgehen, wenn du wirklich
Warenein- und -ausgänge speichern willst.

Hatte ich eigentlich nicht vor - der Ist-Bestand reicht dem Chef - aber die Idee ist gar nicht so schlecht, da man so den Durchlauf bekommt…

Dafür am besten eine Tabelle „Bestandsaenderungen“ erzeugen,
mit den Spalten:

id zahl (numeric)
id_artikel bigint
bestandsaenderung numeric
datum datumzeit
aenderungsinfo text (varchar)

du kannst damit für jeden artikel alle aenderungen (ein- und
ausgänge) durch positive oder negative werte in der spalte
„bestandsaenderung“ darstellen ohne die artikel-tabelle
angreifen zu müssen.

in der artikel-tabelle würde ich nur eine spalte
„startbestand“ erzeugen, die den initialwert (z.b. der bei der
ersten inventur festgestellte) enthält.
der aktuelle bestand kann dann immer durch die berechnung
„startbestand“ + summe der bestandsänderungen des artikels
dargestellt werden.

formulare/abfragen:
du „befüllst“ formulare entweder mit tabelleninhalten oder
abfragen.

Mir schwebt ein Main-Sub-Form vor, in dem ich „oben“ den Filter setze und „unten“ (Subform als Tabelle) die Filterergebnisse anzeigen kann…

bei optionsfeldern benötigst du meist eine abfrage, weil du ja
nur 1 oder wenige spalteninformationen in solchen
optionsfeldern haben willst.

Begriffsklärung: Ein Optionsfeld ist doch dieser Kreis, mit oder ohne Punkt, meist verknüpft mit einem oder mehreren anderen O.feldern, oder?

Ich habe zwei davon im Formular, eins für Büromaterial, das andere (nicht anwählbar) für Geschäftsausstattung. Das obere ist mit dem Tabellenwert Büromaterial (1 oder 0) verknüpft (1 für an, 0 für aus), das andere zwar auch, aber umgekehrt. somit ist immer nur eins an und der Benutzer sieht sofort, zu welcher Gruppe der Artikel gehört.

für weitere details schick mir deine email-adresse, dann sende

[email protected]

ich schick dir in der Antwort mal mein Ergebnis, soweit bis dahin fertig… Rüberschauen und grinsen…!

ich dir meine test-datenbank, die bereits die tabellen und ein
paar abfragen, etc. enthält.

Ich bin schon sehr gespannt…!

lg
Georg

Bis bald und liebe Grüße aus Berlin,

Marcel

Hallo georg,

ich habe mittlerweile 4 (neue) Tabellen

  1. Artikel
    -ID BIGINT
    -id-artikel BIGINT
    -id-standort BIGINT
    -Bezeichnung VARCHAR
    -Beschreibung VARCHAR
    -Anfangsbestand NUMERIC
    -Mindestbestand NUMERIC

  2. Artikelart
    -ID BIGINT
    -AV/UV BOOLEAN
    -Gruppenname VARCHAR

  3. Standort
    -ID BIGINT
    -Raum VARCHAR

  4. Bestandsveränderung
    -ID BIGINT
    -id-artikel BIGINT
    -id-artikelart BIGINT !!!
    -Bestandsveränderung NUMERIC
    -Bemerkungen LONGVARCHAR
    -Datum TIMESTAMP

!!! entfernt, da gleich id-artikel :smile:

Bisher verknüpft habe ich

Artikel.id-artikel n-1 Artikelart.ID
Artikel.id-standort n-1 Standort.ID
Artikel.ID 1-1 Bestandsveränderung.ID

Gern würde ich mal einen Screenshot senden, aber das scheint hier nicht zu gehen, daher schicke ich dir den Link zu Dropbox, hoffe es funktioniert!

https://www.dropbox.com/s/yowcos8uhpnqd7k/Inventur-D…

LG, Marcel

Update:

Also irgendwie bekomme ich die Tabellen nicht so verknüpft (oder ich stell mich beim Formular erstellen zu blöd an), dass anstelle der Artikel- und Standort-ID die Artikelart bzw. der Standort als Text angezeigt wird, so wie es in den entspr. Tabellen vermerkt ist…

Wenn die Standort-id 0 ist, soll „Raum 201e“ angezeigt werden - dafür brauch ich doch jetzt nicht allen Erstes eine Abfrage, oder?

sooooo:

https://wiki.documentfoundation.org/ima … ng_V33.pdf

Seite 33-34, Punkt 4.

Warum einfach, wenns auch kompliziert geht? Wer soll denn darauf kommen, dass man sich mit der SQL-Bürste in der linken Hand am rechten Ohr kratzen muss, während man mit der freien Hand auf dem Hochseil tanzend Sudokus mit verbundenen Augen ausfüllen muss?

Dass es ein Listenfeld o.ä. sein muss, leuchtet mir ja noch ein, aber dass man zur Anzeige der - neben der unvermeidlichen ID - einzig existierenden Spalte SQL bemühen muss, finde ich als Laie schon etwas seeehr umständlich. Im Calc hat man das ganz wunderbar mit der SVERWEIS-Funktion gelöst. Warum nicht auch - so ähnlich - bei Base?

Ach menno… Ich könnte schon fast fertig sein, wenn man die entscheidenden Infos nicht immer unterm Ladentisch bekäme.

Nichts gegen dich - du konntest es ja nicht wissen, dass ich sooo doof bin! :smiley:

Also, jetzt weißt du so in etwa, wo ich stehe was Base - und auch meine Inventar-DB - angeht.

Ich fürchte, dass ich spätestens bei den Bestandsveränderungen nochmal deine Hilfe benötige, aber jetzt versuche ich ersteinmal, mir durch Erstellen von ein paar Formularen das Führen des Inventars zu ermöglichen. Ein Erfolgserlebnis muss vor dem Feierabend schließlich noch sein!

Ganz liebe Grüße.

Marcel

P.S.:

Werde mir mal ein Form für die BV basteln, oben die Art.daten, darunter als Subform (Tabelle?) die BV des o.a. Artikels.
Ich habe nur vorab schonmal eine Frage:
Wie/wo werden die einzelnen Zu- und Abgänge pro Artikel gespeichert?

Hi!

Du warst ja heute schon mächtig fleißig. Ich sitze leider tagsüber bei Kunden und kann bis in den Abend rein immer nur mitlesen.

Kurze Antwort zu BV:
Die müsstest du in einem formular erfassen (mlgw. genau in deinem erwähnten subformular).
Wobei eine BV ja ein neutraler Begriff ist, sie kann positiv oder negativ sein. Deshalb ist in der BV-Tabelle auch nur eine numerische spalte notwendig. Wenn man die dann summiert und mit dem Startbestand addiert, bekommt man exakt den aktuellen Bestand.

Ich hoffe, ich komme heute noch zum Beantworten Deiner restlichen Fragen.

have fun!
Georg

1 Like

hallo georg,

heute existiert der antworten-button mal wieder… :wink:

Ich knabber - nach zugegeben zwei freien Tagen - immer noch an dem BV-Formular.

Wie ich dir schon mitteilte, werden zwar (dank Pflichtfelddeaktivierung, siehe PN) die im Form eingetragenen Zu-/Abgänge in die BV-Tabelle geschrieben und dort auch mit der ID verknüpft, aber beim Aufrufen desselben Artikels werden die dort hinterlegten Daten nicht wieder ausgelesen!

Guckst du hier:

https://www.dropbox.com/s/vm95ganxu9liyj3/Inventar%2…

Die ID-Spalte im Subform habe ich aus purer Verzweiflung eingefügt. Du siehst die Tabelle _Bestands…, dahinter das entspr. Formular mit dem Bv-Subform, leider ohne die in der BV-Tabelle gespeicherten Daten…

Das Feld IST-Bestand existiert auch schon, nun muss nur noch das Auslesen funktionieren, dann können wir uns über die Berechnung des IST-Feldes unterhalten…

Ich hoffe, du bist recht bald mal wieder online, so dass es etwas weiter gehen kann…?

LG, Marcel