Hallo hans,
> (zum
> verarbeiten wäre - meine starke vermutung - die db wohl viel
> einfacher zu handhaben).
Würde ich auch so sehen denn....:
> 1. in der 1. tabelle sind "kundendaten"
> 2. in der 2. tabelle sind "auftragsdaten"
> beide tabellen habe die spalte "kundennummer" (sozusagen als
> primärschlüssel).
> in der 2. tabelle sind bei verschiedenen kunden verschieden oft
> aufträge angeführt.
> 3. wenn ich also in einer 3. tabelle (für den seriendruck - z.b.
> rechnungen - verwendet - s. oben zur vorgeschichte) jeden auftrag
> übernehme, muss ich auch den entsprechenden "kundensatz" dazufinden.
...was du hier beschreibst, ist eine typische Aufgabe für relationale
Datenbanken (Stichwort: Join-Operation).
Ich habe in der Firma ähnliche Dinge mit Excel-Dateien produziert, die
ich als Datenbank verwendet habe. Mittels entsprechender Abfrage lässt
sich dann der Join ausführen und das Ergebnis als Datenquelle für einen
Serienbrief nutzen.
Leider habe ich so etwas (der ewige Zeitmangel) noch nicht mit Base
probiert. Mein gerade erfolgter Test scheitert daran, dass ich beim
Erstellen einer Abfrage in Base immer nur eine der beiden Tabellen
hinzufügen kann!? Ziehe ich die beiden Tabellen aus Calc in eine neue
Base-Datei, so klappt die Abfrage problemlos...
Wenn es nur mit Calc gehen soll, dann fiele mir noch eine weitere (von
hinten durch die Brust ins Auge-)Lösung ein:
Voraussetzung: Beide Tabellen sind in einer Calc-Datei und die
Kundennummer ist lückenlos aufsteigend.
In meinem Beispiel:
Blatt1 (Kunden):
[A] [B] [C]
[1] ID Vorname Nachname
[2] 1 Hans Meyer
[3] 2 Frank Müller
[4] 3 Markus Schmidt
[5] 4 Andreas Lehmann
Blatt2 (Auftrag):
[A] [B] [C] [D]
[1] Auftrag Kunde Ware Preis
[2] 1 1 Äpfel 5
[3] 2 2 Birnen 3
[4] 3 4 Citronen 4
[5] 4 1 Datteln 7
[6] 5 4 Erbsen 2
[7] 6 3 Fenchel 4
[8] 7 2 Gurken 2
[9] 8 4 Himbeeren 3
Hier extrem wichtig: Im Blatt1 entspricht ist die Nummer der Zeile immer
um 1 größer als die Kundennummer!
Nun erzeugst du ein drittes Tabellenblatt mit folgenden Überschriften:
[A] [B] [C] [D] [E] [F]
[1] Auftrag Kunde Ware Preis Vorname Nachname
Die Daten für die Spalten A-D verschaffst du dir durch Kopieren:
A2=Auftrag.A2
B2=Auftrag.B2
C2=Auftrag.C2
D2=Auftrag.D2
Und nun der Trick ;-) :
Du weißt, dass du die Zeilennummer, in der die Kundendaten stehen,
ausrechnen kannst! In der ersten Zeile wäre dies Kunde Nr 1, also
Zeile 2. Dabei Steht der Kundenvorname in Spalte B der Tabelle "Kunden".
Damit kannst du den Zellbezug für den Vornamen deines Kunden für
Auftrag Nr. 1 "ausrechnen": Tabelle "Kunden", Spalte B,
Zeile=Kundennummer+1). Wenn du den Zellbezug erst einmal als Text hast,
kannst du INDIREKT() verwenden.
Die Formel lautet also:
E2=INDIREKT("Kunden.B"&B2+1)
Für den Nachnamen entsprechend (Spalte C):
F2=INDIREKT("Kunden.C"&B2+1)
Für die zweite Zeile bekommt du so die Einträge:
[A] [B] [C] [D] [E] [F]
[2] 1 1 Äpfel 5 Hans Meyer
Der eigentliche Trick besteht also darin, dass sich die Position der
Kundendaten anhand einer Formel aus der Kundennummer (hier Zeile =
Kundennummer+1) ausrechnen lässt. Dadurch wird die "Berechnung" des
Zellbezugs als Text und der Zugriff auf die Daten per INDIREKT() erst
möglich.
Die Formeln lassen sich dann problemlos in die nächsten Zeilen kopieren,
bis man für jeden Auftrag die passenden Rechnungsdaten vorliegen hat.
Diese Tabelle lässt sich dann für den Serienbrief verwenden
Das ist allerdings alles eher trickreich als elegant...
Gruß,
Michael
p.s. falls du die Mini-Beispiel-Tabelle haben möchtest, dann kurze
Nachricht per PM.
--
____
/ / / / /__/ Michael Höhne /
/ / / / / [email protected] /
________________________________/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]