Das erste Problem ist, dass Du überhaupt Geschäftsvorgänge in einer Tabellenkalkulation speicherst. Jede, wirklich jede professionelle Software speichert sowas in einer Datenbank, die in einer ganz speziellen Weise strukturiert ist. Buchhaltungssoftware, die Geschäftsdaten auf Excel-Sheets speichert gibt es nur in Form von zigtausenden Do-It-Yourself-Projekten, die aber nie übertragbar sind, weil jeder Excel-Freak immer nur durch sein eigenes gewurschtel durchsteigt.
Das zweite Problem liegt darin, dass wenn Du schon eine Geschäftsdatenbank auf Käsekästchen nachmodellierst, die Struktur dieser Datenbank einer Papierwelt nachempfunden zu sein scheint, mit einer separaten “Akte” für jeden Kunden oder für jeden Auftrag oder für jeden Angestellten oder, oder, oder. Wenn man schon Excel oder sowas als Datenbank-Krücke verwendet, dann ist es unvermeidbar, bestimmte Designregeln einzuhalten, weil auch die entsprechenden Features von Excel & Co. eine bestimmte Struktur voraussetzen, um Sachverhalte aus verschiedenen Tabellen zusammenzuführen. (s. Datenbanknormalisierung). Auf heutigen Computern kannst Du tausende Tabellen in einer Datei haben. Die Sheets sind sogar so groß, dass Du tausende Tabellen auf einem Sheet anlegen könntest.
Das Verhalten von Calc ist meiner Meinung nach kein Fehler, sondern eine Fehlstelle. Es scheint einfach nicht implementiert zu sein. Man hat vor ein paar Jahren auf vielfachen Wunsch Excel’s SheetName!Bereichsname eingeführt, aber dabei nicht gleich die externen Links entsprechend berücksichtig. Vielleicht wissen wir auch einfach nicht, wie es geht. Stell Dir vor, es geht, und keiner kriegt’s hin (Wolfgang Neuss zum 100sten Geburtstag).
Ich habe mal auf der englischen LIste nachgefragt: DDE link pointing to sheet specific range name? EDIT: Die Antwort ist wie vermutet: Es ist nicht implementiert und seit Jahren gammelt ein entsprechender Feature Request vor sich hin. Ist wohl eher selten gefragt.
Dann habe ich eine meiner Beispieldatenbanken für Rechnungen vorgekramt, die wirklich nur ein sehr grober Entwurf ohne MwSt, ohne Frachtkosten, ohne Rabatte, ohne Kunden-Details, ohne Artikel-Details etc. ist. Also etwas, was in ein paar Stunden mal eben dahingepfuscht ist.
Darin befinden sich 3 Eingabeformulare:
- “New Invoice” zur Eingabe einer neuen Rechnung. Wähle einen Kunden, ein Rechnungsdatum (Standard ist heute) und füge Produkte und Mengen hinzu. Die weiße Tabelle zeigt die aktuellen Produktpreise am Rechnungsdatum.
- “Products & Prices” dient der Aktualisierung von Artikelpreisen.
- “Existing Invoices” zeigt alle eingegebenen Rechnungen.
Der eine Bericht “Report” ist ein etwas stümperhafter Entwurf, der einfach alle Rechnungen in ausdruckbarer Form anzeigt. In Berichten kann man auch Gesamtsummen, MwSt etc. ausweisen.
Wenn Du unbedingt willst, kannst Du Datenbankdaten auch in Calc importieren (und layouten). Mit Makro-Code kann man auch in Writer aus Datenbankdaten richtige DIN-Briefe mit Rechnungen erzeugen.
Die Tabellen und Abfragen der Datenbank sind sozusagen die Bereiche “hinter den Kulissen”, wo Rohdaten gespeichert, zusammengeführt und berechntet werden.
Invoices_Articles_Prices.odb (48.1 KB)