Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

RechnungsNr hochzählen

Begonnen von Nadeshiko, März 02, 2015, 08:14:49

⏪ vorheriges - nächstes ⏩

Nadeshiko

Hallo Leute,

jetzt habe ich ein anderes Anliegen. Die Vergabe der RechnungsNr...

Fall:
Der Kunde gibt das Jahr ein. Durch den Button generiert er dann die RechnungsNr wie folgt, [Jahr - fortlaufende Nummer]:

Z.B. 2015-1

Das ding ist...das Hochzählen bleibt bei 2015-10 auf der Strecke und zählt nur noch 2015-10 weiter.
Das komische ist, ich hab es eigentlich letzte Woche behoben und es hat weiter mit 11 gezählt, jetzt fängt er wieder an zu spinnen und ich hab einfach keine Lösung mehr parat.


Dim strBedingung As String
Dim strNo As String, strDate As String
Dim strMax, intLenStr As Integer
Dim strAlignment As String
Dim strMsg As String


                ' Ermitteln des Stringes
                strDate = Me!txtJahr
                ' Länge des Datumstrings
                intLenStr = Len(strDate)
                ' Bedingung für den letzten Wert festlegen
                strBedingung = "LEFT ([RechnungsNr]," & intLenStr & ")='" & strDate & "'"
                ' Letzen Wert suchen
                strMax = DMax("[RechnungsNr]", "tblRechnungen", strBedingung)
               
                If IsNull(strMax) Then
                    strNo = "1"
                Else
                    strNo = Split(strMax, "-")(1)
                    ' Zähler setzen
                    strNo = Format$(Val(strNo) + 1, "0")
                End If
Me!txtRechnungsNr = strDate & "-" & strNo
               


Vielleicht hat jemand auch eine andere Lösung...?

DF6GL

Hallo,

ohne auf den weiteren Code einzugehen:

strMax = DMax("val(mid([RechnungsNr],6))", "tblRechnungen", strBedingung)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Nadeshiko

Hallo!

Vielen lieben Dank!
Hab das jetzt so gelöst & es funktioniert :)


                ' Ermitteln des Stringes
                strDate = Me!txtJahr
                ' Länge des Datumstrings
                intLenStr = Len(strDate)
                ' Bedingung für den letzten Wert festlegen
                strBedingung = "LEFT ([RechnungsNr]," & intLenStr & ")='" & strDate & "'"
                ' Letzen Wert suchen
                strMax = DMax("val(mid([RechnungsNr],6))", "tblRechnungen", strBedingung)
               
                If IsNull(strMax) Then
                    strNo = "1"
                Else
                    strNo = strMax
                    ' Zähler setzen
                    strNo = Format$(Val(strNo) + 1, "0")
                End If
               
                Me!txtRechnungsNr = strDate & "-" & strNo

MzKlMu

Hallo,
die Rechnungsnummer ergibt sich ja eindeutig aus dem Jahr und der LfdNr. Daher würde es genügen nur die Zahl (als Zahl!) zu speichern und nur diese jahresabhängig hochzuzählen.
Die Rechnungsnummer wird dann in einer Abfrage aus Jahr und der formatierten Zahl zusammengesetzt.
Der komplette obige Code wird dann überflüssig, weil man das Hochzählen über den Standardwert direkt erledigen kann.

Gruß Klaus