Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Rechnungsnummer um einen Zähler erhöhen





Frage

Hallo, ich habe ein Formular erstellt. In diesem Formular soll eine Rechnungsnummer in einem Textfeld mit 100 anfangen und nach jedem verlassen dieses Textfeldes der Wert um einen Zähler (+1) erhöt werden. Bei mir klappt das irgendwie nicht, wäre super wenn mir jemand helfen könnte! Skopi82

Antwort 1 von piano

Hallo
Ich kann mit deiner Anfrage nicht viel anfangen.
Technisch ist das kein Problem, mir fehlt aber die Logik!
Bei jedem Aufruf des Formulars würde mit 100 begonnen und jedes hin- und herspringen von und zu diesem Feld würde ein Weiterzählen bewirken.
Ich nehme an, dass du eine Rechnungsnummer in einem Feld der Rechnungstabelle oder in einer eigenen Tabelle benötigst, die bei jeder neuen Rechnung um 1 erhöht wird.
Schreib mir, was du wirklich willst.
Gruss
piano

Antwort 2 von Knubbel

Hallo Skopi82,

Lege doch für das Textfeld AuftrNr bei dem Ereignis bei Fokuserhalt ein Makro SetzenWert an.

Im Makro bei Feld: Formularname.AuftrNr
bei Ausdruck: Domänfunktion Dmax+1
(zählt die höchste Auftrags-Nr. um 1 hoch)
Im Makro noch die Bedingung AuftNr ist Null festlegen. Hierdurch wird diese nur bei einem neuen Datensatz hochgezählt.

mfg Knubbel

Antwort 3 von Skopi82

@Knubbel

Salve,
erstmal danke für deine Hilfe, aber es klappt noch nicht richtig.
Es kommt immer die Fehlermeldung Typen unverträglich!
Also ich habe nun ein Makro mit SetzenWert geschrieben. Bei Elemente Rechnungsprogramm.Rechnungsnummer eingegeben und dann bei Asudruck: Dmax+1
Wo lege ich denn die Bedingung fest?
Wäre super wenn es doch noch klappen würde.

MfG Skopi82

Antwort 4 von Skopi82

@ piano

Slave,

ich versuche es einfach nochmal etwas einfach zu vormulieren.
Also ich habe ein Rechnungsformular. In diesem Formular soll es ein Textfeld geben das den Wert z.b. 100 besitzt. Nun wird in diesem Formular nach einem Kunden gesucht. Nun will ich würd jede neue Suche auch eine neue Rechnungsnummer d.h.
1. Suche = Rechnungsnummer 100
2. Suche = Rechnungsnummer 101 usw.

also in diesem Textfeld soll einfach immer wieder der alte Wert um eins erhöt werden.

Hoffe konnte es jetzt verständlicher rüberbringen.

MfG
Skopi82

Antwort 5 von Knubbel

Hi Skopi82,

nun wirds etwas komplizierter.
Wie du es schreibst, wenn ich es richtig verstanden hab, hast du ein Formular, bei dem immer mit Re-Nr. 100 die Suche begonnen wird??

Warum legst du nicht eine Tabelle an mit den aufsteigenden Nrn. und greifst darauf zurück?

Zu deiner Frage:
* Die Bedingung innerhalb eines Makros gibt man an, wenn die "Bedingungsspalte" eingeblendet ist (Ikon in der Symbolleiste)
* Die Domfunktion hat folgende Syntax:
DomMax("[AuftrNr]+1";"[dein Tabellenname]")

Vielleicht hilft dir das ja weiter.

mfg Knubbel

Antwort 6 von piano

Hallo
Leider um nichts klarer!
Bedenke, dass ein Textfeld seinen Wert verliert, wenn das Formular neu gestartet wird, das heißt, es bekommt wieder den Ursprungswert.
Diese Funktion kann nur ein Feld in einer Datenbank-Tabelle erfüllen, wo der letzte gespeicherte Wert (Rechnungsnummer ) als Ausgangspunkt für die nächste Rechnung gilt.
Ansonsten sind die oben gelieferten Antworten anwendbar, oder bei einem bestimmten Ereignis (wie zum Beispiel "nach erfolgreicher Suche" - wann immer das ist) einfach den Code
Me.Rechnungsnummer=Me.Rechnungsnummer + 1

eintragen
mfg
piano

Antwort 7 von piano

Hallo
Wie du siehst, gibt es hier zwei Ansätze:
@Knubbel bietet ene Makrolösung,
ich selber bevorzuge VBA (weil ichs besser kann)
Gruss piano

Antwort 8 von Skopi82

Moin,

also irgendwie klappt das alles nicht wirklich.
Ich versuche jetzt noch mal euch die Aufgabe besser zuerklären:

Ich habe eine Datenbank geschrieben die aus Kunden und Adressen besteht.
Nun hab ich ein Formular geschrieben in dem man nun nach bestimmten Kunden suchen kann und gleichseitig auch bestimmte Beträge errechnen kann.
Mit diesem Formular schreibe ich also eine Rechnung. Ich möchte nun in diesem Formular eine aufsteigende Nummer haben (Rechnungsnummer), die bei jeder neuen suche erhöt wird.
Beispiel:

1. Suche
Suche den Herrn Maier
das Programm lieft mir den Namen sowie die Adresse. Nun lasse ich mich einen bestimmten Betrag errechnen. Diese Rechnung an Herr Maier soll z.b. die Rechnungsnummer 1 bekommen.
2.Suche
Nun möchte ich nach Frau Schulz suchen.
Das Programm liefert mir auch hier den Namen und die Adresse. Ich lasse das Formular wieder einen bestimmten Betrag errechnen. Nun soll mir im Formular die Rechnungsnummer 2 angezeigt werden.

Ich möchte das gerne machen um Nachfragen genau zu dieser Rechnungsnummer zu ordnen zukönnen.

Man könnte das auch per Hand eingeben, aber ich denke mir doch, dass es eine Möglichkeit geben muss(egal ob VBS oder Makro) in der einfach eine Zahl erhört wird.

So ich hoffe diesmal das es klarer wurde.

Danke euch trotzdem für eure Hilfe

Skopi82

Antwort 9 von piano

Hallo
Heißt das, dass du für die Rechnung keine Tabelle verwendest sondern nur Druckausgabe????
Das ist allerdings sehr ungewöhnlich für eine Access-Anwendung. Das würde ich eher mit Excel lösen!
Wenn du ohne weitere Tabelle auskommen möchtest, siehe AW 6.
Gruss piano

Antwort 10 von Mikoop

Hallo,

Ich halte es für einen prinzipiellen Fehler, die Rechnungsnummer schon beim Suchen des Kunden zu generieren.
Besser wäre es meiner Meinung nach, dies erst nach dem erfolgreichen Druck der Rechnung zu tun,denn sonst bekommst du Probleme, wenn du eine Rechnugn nochmal drucken willst ( weil der Drucker spinnt oder du etwas falsch gemacht hast)

Ich würde eine Abfrage generieren, die nach dem Druck fragt : zB ´ Druck in Ordnung, Rehnungsnr fortschreiben ? ´ und dann die Rechnungsnummer ( für die folgende RG) um eins hochsetzt.
Diese Abfrage sollte auch per Makro relativ einfach umzusetzten sein, oder ?

Gruss, Mikoop