Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Nadeshiko am März 02, 2015, 08:14:49

Titel: RechnungsNr hochzählen
Beitrag von: Nadeshiko am März 02, 2015, 08:14:49
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...?
Titel: Re: RechnungsNr hochzählen
Beitrag von: DF6GL am März 02, 2015, 08:44:49
Hallo,

ohne auf den weiteren Code einzugehen:

strMax = DMax("val(mid([RechnungsNr],6))", "tblRechnungen", strBedingung)
Titel: Re: RechnungsNr hochzählen
Beitrag von: Nadeshiko am März 02, 2015, 09:26:19
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
Titel: Re: RechnungsNr hochzählen
Beitrag von: MzKlMu am März 02, 2015, 18:20:00
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.