WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Software (http://www.wcm.at/forum/forumdisplay.php?f=5)
-   -   hilfe bei access- rechnungsnummer- jedes jahr bei 1 beginnen (http://www.wcm.at/forum/showthread.php?t=151854)

flightcontrol 30.11.2004 20:59

hilfe bei access- rechnungsnummer- jedes jahr bei 1 beginnen
 
hello :)

folgendes problem:

ich habe mit access ein kleines verrechnungsprogramm erstellt. funktioniert an und für sich alles wie geplant- nur bekomme ich es nicht hin, das die rechnungsnummer bei jeder neuen rechnung um eine nummer steigt- und jährlich automatisch wieder bei 1 beginnt :(

habe per google schon gesucht- auch sowas ähnliches gefunden- bin aber scheinbar zu wenig mit access vertraut um das zu ändern und in das programm reinzunehmen.

hätte hier sowas ähnliches gefunden- kann aber damit nicht wirklich was anfangen.

gibt es unter euch jemanden der sich da vielleicht besser auskennt und mir einen tipp geben kann wie das funktioniert?

wäre echt genial!

l.g. flight

wbendl 01.12.2004 08:45

Hi!

Die beiden Beispiele sind selbsterklärend. Allerdings glaube ich im 1. Beispiel einen kleinen Fehler entdeckz zu haben.

Für deinen Zweck ist noch einfacher, weil du nur 2 parameter hast.

Auf jeden Fall ist eine Verwaltung der Nummern notwendig. Es genügt aber, die jeweils letzte vergebene Nummer zu speichern.

Ich kenne deine Lösung nicht, nehme aber an das die Nummer und das Datum sowieso in irgend einer Tabelle bereits gespeichert wird. Damit ist die Verwaltung eigentlich schon vorhanden.

Um eine neue Nummer zu vergeben einfach die letzte Nummer auslesen, das Jahr prüfen, und abhängig vom Ergebnis die neue Nummer festlegen.

Wie das genau zu implementieren ist, hängt von deiner Anwendung ab. Wenn du mit gebundenen Steuerelementen arbeitest, wird es schwierig den richtigen Zeitpunkt für die Nummernvergabe festzulegen.
Um Datenleichen zu vermeiden ist ziemlich viel Programmieraufwand nötig.
Wenn du mit ungebundenen Steuerelementen arbeiten würdest, hättest du die Frage vermutlich gar nicht gestellt.

Wenn du Fragen hast, bitte mit einer genauen Beschreibung deiner DB oder einem Beispiel in Access 97. Dann sollte das Problem doch zu lösen sein.

mfg

WB

wbendl 01.12.2004 16:09

Hi!

Ich hab jetz ein bißchen mit Access97 herumgespielt.
Die Lösung scheint gar nicht so schwer.

Leider unterstützt Access keine benutzerdefinierte Funktion als Standardwert in der Tabelle. Man muß es also über ein Formular lösen.

So sollte es klappen:

In der Ereignisprozedur Form_Current wird geprüft, ob es bereits eine Nummer gibt.
Bei ja passiert nichts
Bei nein wird die letzte Nummer ausgelesen. Basierend auf diesem Ergebnis wird die neue Nummer generiert, und in das Feld im Formular geschrieben.
Dadurch wird ein neuer DS sofort mit einer Nummer versehen. Wenn allerdings jemand irrtümlich auf "neuer DS" klickt, wird dieser sofort angelegt, obwohl ihn eigentlich keiner braucht.

Wie schon vorher gesagt: Die Vermeidung von Leichen ist ziemlich schwierig.

Alternativ könnte man die Nummer nur vorschlagen, und erst auf Befehl übernehmen.

Aber wie Selfman sagt: "Das ist eine andere Geschichte"

Wenn du mir sagst wie deine DB aussieht, liefere ich dir die notwendige Funktion.

mfg

WB

flightcontrol 11.01.2005 18:50

hello!

mal vielen Dank für Deine antwort- im großen und ganzen kann ich ca. verstehen wie Du das meinst.

da ich leider im bezug auf "programmieren" bzw. diese befehle im access echt totaler anfänger bin- kann ich das ganze nicht wirklich alleine vollenden-

form current habe ich in den eigenschaften des "rechnungsformulares" gefunden- dort gehört jetzt eine art select befehl hinein oder?

hättest Du da ein beispiel oder dergleichen?

wenn ich das richtig verstanden habe- prüft diese funktion dann bei jedem mal wenn ein neuer datensatz angelegt wird- was die nächsthöhere nummer ist- und beginnt jedes jahr wieder mit 1 oder?

sorry- bin in dieser sicht etwas unbeholfen.

l.g. flight :)

wbendl 11.01.2005 21:27

Hi!

Das hast du richtig erkannt. Immer wenn im Formular zu einem anderen DS gewechselt wird, wird die Nummer abgefragt. Ist keine Nummer vorhanden (ein neuer DS), wird sie generiert.

Schick mir ein Muster der DB im Format Access97, dann bastle ich dir die Funktion zum generieren der Nummer.

mfg

WB

flightcontrol 11.01.2005 22:33

hello!

vielen dank für die unterstützung!
hab Dir über das forum ein mail geschickt, anhang mitschicken geht leider nicht

l.g. flight


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag