PDA

Vollständige Version anzeigen : Problem gleicher Datensatz aber warum?


Hitman2k
22.03.2006, 21:24
Hallo

Ich brauche dringend Hilfe bin noch ein Access und vba noob.

Hier ist der Code: !!!Rot ist hinzugekommen!!!

Function NeueBestellnummerErmitteln(BestellungstypNr As Variant, Optional Kategorienummer As Variant) As Variant

Dim Jahr As String
Dim Monat As String
Dim Start As String
Dim LaufendeNummer As Variant
Dim Buchstabe As String

If IsMissing(Kategorienummer) Then Kategorienummer = "00"

Select Case BestellungstypNr

Case btBestellung: Buchstabe = "B"
Case btRechnung: Buchstabe = "R"
Case btLieferschein: Buchstabe = "L"
Case btMahnung: Buchstabe = "M"
Case btGutschrift: Buchstabe = "G"
Case btAngebot: Buchstabe = "E"
Case btAuftrag: Buchstabe = "A"

End Select

Jahr = Format(Year(Date), "YY")

Monat = Format(Month(Date), "00")

Start = Buchstabe & Jahr & Monat & "-" & Format(Kategorienummer, "0") & "-"

LaufendeNummer = FastDMax("Val(Mid (Nummer,9,3))", "tblBestellungen", "Left(Nummer, 3) = '" & Buchstabe & Jahr & Monat & "'") + 1
If IsNull(LaufendeNummer) Then LaufendeNummer = 1
NeueBestellnummerErmitteln = Start & Format(LaufendeNummer, "000")

End Function

Sobald ich das " Rot makiert" hinzugefügt habe hat Access anscheinend ein Problem mit der Laufenden Nummer! Es schein mit der länge der des Felds Nummer zu tun zu haben. Welches in der TblBestellungen in der 3 Reihe liegt. Hier sollte die "Blau" den bestehende wert ausgeben und dann um 1 erhöhen. Auch wenn ich die Krtiterien um die dazu gekommenen Stellen ( Jahr = 06 = 2 stellen ) also dann statt 7 = 9) wird ein fehler beim schreiben des Feldes Nummer ausgegeben. Datensatzkonvention keine doppelten!
Ich denk das er trozt der anpassung nicht vortlaufend Nummeriert. Er gibt immer Null aus - denke ich.... sollte z.b nach B0603-0-001 zu B0603-0-002 werden.
Dafür sollte eigendlich
FastDMax("Val(Mid (Nummer,9,3))", "tblBestellungen", "Left(Nummer, 3) = '" & Buchstabe & Jahr & Monat & "'") + 1
If IsNull(LaufendeNummer) Then LaufendeNummer = 1

da sein. wo ist der Fehler?

Na ja das ist das was ich bis her so gecheckt habe vielleicht stimmt es ja auch gar nicht.

Bitte um Hilfe.

Vielen Dank


LG Mario

dreamweaver
23.03.2006, 05:59
Schnellschuss, aber funzt es so:

Jahr = Rigth(Format(Year(Date), "YYYY") ,2)

Karlheinz
23.03.2006, 07:18
Year(Date) ergibt 2006
damit reicht die Right Funktion aus um das gewünschte Ergebnis zu erhalten

Jahr=Right(Year(Date), 2) --> 06

Gruß karlheinz

Hitman2k
23.03.2006, 07:29
Hallo und schönen guten MOrgen.

Ja klar kann ich das mit dem Jahr so oder so machen.

ABER das ist leider nicht das Problem!!!
Bitte lest doch nochmal meine Beschreibung. Oben
Es geht im grunde darum das egal was ich zusätzlich hinzufüge ob das Jahr in der Rechnungs nummer oder auch nur noch ein zusätlichen trennungsstrich Access keine weitere rechnung mit Laufendernummer anlegen kann. Was muss ich ändern.

Vielen Dank

LG Mario