von Toxitom » Mo, 26.03.2007 17:59
Hey Melek,
Mein Makro funktioniert bis auf 0207/009, danach statt 0207/010 wird 0207/0010. Ab März 07 wird nicht neu mit 001 sondern mit 0207/last+1
hochgezählt.
Ja, das ist genau das, was dein Makro macht
willst du die Zahlen immer dreistellig mit führenden Nullen, so verwende den Befehl Format. Die Zeile heisst dann:
Die Hochzählung im nächsten Monat wieder bei 1 zu beginnen musst du mit einer Schleife abfangen: Dazu brauchst du allerdings die letzte eingegebene Datensatznummer - aber die brauchst du ja sowieso, um überhaupt hochzählen zu können. Insofern funktioniert dein Code sowieso nicht, denn du nutzt den Wert des Feldes "siparis" (was immer das auch sien mag) um die Nummer zu generieren. Deinen Ausführungen nach muss es sich wohl um eine laufende Datensatznummer handeln?
Also, das Prinzip wäre:
Auslesen der letzten Datensatznummer (wie du die erreichst, ist nicht ganz einfach!), zerlegen der Nummer auf seine Bestandteile: Ist der Monat identisch mit dem aktuellen Monat, dann einfach eine Nummer hochzählen.
Ist der gespeichertere Monat eins niedriger als der aktuelle, dann neue Nummer generieren aus aktuellen Datum und einer "001" hinten dran.
Sind die Monate weiter auseinander oder sehr unterschiedlich - ja, dann musst du dir eine Fehlerbehandlunc oder eine Strategie überlegen.
Also, das ist alles etwas komplizierter als zunächst so dargestellt!
Gruss
Thomas
Hey Melek,
[quote]Mein Makro funktioniert bis auf 0207/009, danach statt 0207/010 wird 0207/0010. Ab März 07 wird nicht neu mit 001 sondern mit 0207/last+1
hochgezählt. [/quote]
Ja, das ist genau das, was dein Makro macht :-)
willst du die Zahlen immer dreistellig mit führenden Nullen, so verwende den Befehl Format. Die Zeile heisst dann:
[code]oStr = sAy + sSene + "/" + format(sNo, "000")[/code]
Die Hochzählung im nächsten Monat wieder bei 1 zu beginnen musst du mit einer Schleife abfangen: Dazu brauchst du allerdings die letzte eingegebene Datensatznummer - aber die brauchst du ja sowieso, um überhaupt hochzählen zu können. Insofern funktioniert dein Code sowieso nicht, denn du nutzt den Wert des Feldes "siparis" (was immer das auch sien mag) um die Nummer zu generieren. Deinen Ausführungen nach muss es sich wohl um eine laufende Datensatznummer handeln?
Also, das Prinzip wäre:
Auslesen der letzten Datensatznummer (wie du die erreichst, ist nicht ganz einfach!), zerlegen der Nummer auf seine Bestandteile: Ist der Monat identisch mit dem aktuellen Monat, dann einfach eine Nummer hochzählen.
Ist der gespeichertere Monat eins niedriger als der aktuelle, dann neue Nummer generieren aus aktuellen Datum und einer "001" hinten dran.
Sind die Monate weiter auseinander oder sehr unterschiedlich - ja, dann musst du dir eine Fehlerbehandlunc oder eine Strategie überlegen.
Also, das ist alles etwas komplizierter als zunächst so dargestellt!
Gruss
Thomas