nun habe ich schon etliche Zeit damit verbracht eine Lösung zu finden, aber da reicht es mit meinen bescheidenen Kenntnissen in VBA uä nicht aus.
Also, ich habe eine Tabelle mit meinen Kunden, die alle auch einen ID per Autowert bekommen.
Und ich habe eine Rechnung in Word, die durch Seriendruck mit der Access Datenbank verknüpft ist.
Nun möchte ich, dass mir Access die Rechnungsnummer automatisch generiert für jeden Kunden (ich kann nicht den Autowert nehmen, da bei Fehlern beim Daten importieren oä die Nummer weg sind und die Nummerierung nicht fortlaufend ist).
Ich habe diese Lösung gefunden:
"Sie können zum Erzeugen einer fortlaufenden Nummer eine Unterabfrage verwenden. Diese besteht aus SQL-Text, der wie jedes andere berechnete Feld in einer Spalte einzugeben ist.
Angenommen, Sie haben eine Tabelle „tbl_Artikel“ mit einem Zählerfeld (Autowert) „ID“ und einem Textfeld „Bezeichnung“. Der SQL-Text für das Feld mit der laufenden Nummer in einer Abfrage könnte lauten:
Nummer: (Select Count (*) FROM [tbl_Artikel] as X WHERE [X].[ID]
Du hast Kunden mit einem Zähler als ID und Rechnungen, die ebenfalls einen Zähler als ID haben. Richtig? Dann kann’s weitergehen.
Noch eine Vermutung: Rechnungsnummern sollen aufsteigend und lückenlos vergeben werden. Der Trick mit der Rangfolge (dafür ist die Geschichte eigentlich gedacht) könnte klappen, wäre aber nicht sinnvoll, weil dafür immer der ganze Bestand an Rechnungen gelesen werden muss. Ich rate deshalb zu einer zusätzlichen Tabelle mit genau einem Feld, das die letzte vergebene Rechnungsnummer festhält.
Nutzung des Feldes: Nach dem Anlegen einer neuen Rechnung wird es um 1 hochgezählt und der aktualisierte Wert als Rechnungsnummer für den Druck bei der Rechnung gespeichert und an Word übergeben.
Du hast Kunden mit einem Zähler als ID und Rechnungen, die
ebenfalls einen Zähler als ID haben.
Also ich habe Tabelle 1: ID (Autowert), Name Kunde, Adresse etc.
Und ich habe Tabelle 2: Rechnungsnummer(Autowert), ID Kunde(dieser gebe ich im moment halt manuell ein…)
Ich bekomme in der Woche mehrere Kundennamen und muss für jeden einzelnen ne Rechnung dann auch machen (in .pdf). Ich habe eine Abfrage (Tab1+Tab2) mit dem Worddokument verknüpft.
Noch eine Vermutung: Rechnungsnummern sollen aufsteigend und lückenlos vergeben werden.
Ganz genau!
Ich rate deshalb zu einer
zusätzlichen Tabelle mit genau einem Feld, das die letzte
vergebene Rechnungsnummer festhält.
Nutzung des Feldes: Nach dem Anlegen einer neuen Rechnung wird
es um 1 hochgezählt und der aktualisierte Wert als
Rechnungsnummer für den Druck bei der Rechnung gespeichert und
an Word übergeben.
Lieber Ralf,
ich Danke dir für den Hinweis…
ich müsste deine Hilsbereitschaft noch weiter ausnutzen, und dich fragen: mache ich das dann durch ne Abfrage? Oder muss ich dafür einen Code in VBA schreiben (so mit dao.recordset oä)?
Ich bringe mir im Moment alles selber bei, und da gibt es leider noch sehr viele Lücken bei mir…
Das hilft Dir zwar für den Moment aus der Breduoille, ist und bleibt aber fachlicher Murx, weil sich diese Rechnungsnummer niemals zurückverfolgen lässt („Wir hätten da gerne mal 'n Problem mit der Rechnungsnummer 4711!“). Du solltest auf der Rechnung dann die interne Rechnungsnummer mit angeben, sonst gibt’s Ärger mit der Revision.