"00" wird als 0 behandelt statt als 00

sf90

Grünschnabel
Hallo Leute,

ich habe ein Problem mit einer Access 2003 Datenbank, die ich nicht selber programmiert habe. Und zwar ist das Grundproblem, dass der Kunde eine Rechnung schreiben will und dazu braucht er eine Rechnungsnummer. Diese Rechnungsnummer soll so aussehen 0110001 Es wird aber nur 0111 geschrieben.

Die Rechnungsnummer 0110001 setzt sich so zusammen 01 = Monat 10 = Jahr (sind natürlich die letzten beiden Zahlen von dem Jahr 2010) 001 beschreibt die Rechnungsnummer. Die 1 soll sich natürlich automatisch ändern, was auch in der Datenbank funktioniert. Was nicht funktioniert ist, das er nicht 001 schreibt sondern 1 schreibt. Die "00" und die 1 werden nämlich addiert, was eigentlich nicht passieren soll. Ich habe nämlich mal "99" für die "00" eingegeben und hatte dann bei "99" 100 stehen. Er addiert also mit der Rechnungsnummer.
Dann habe ich mal vor den "00" eine Apostroph gesetzt und es dann ausprobiert, da zeigte er mir an, dass ich nur Zahlen benutzen kann und keine Sonderzeichen/Text. Nun bin ich mit meinem Lateien am Ende.

Hier ist noch der Code wo die zwei Nullen vorkommen:
Code:
Mid(CStr(Year(Date)), 3, 4) + "00"

Also ist meine Frage, wie man es schaffen kann, dass nicht 1 sondern 001 geschrieben wird.

Ich bedanke mich jetzt schon mal für jede Hilfe, da ich selber keine Ahnung von Visual Basic habe.

MfG

sf90
 
Alles Haferkäse.
format() ist der Befehl den du verwenden willst. Und wie von deepthroat angedeutet das & anstelle vom +

Visual Basic:
Format(myDate, "mmyy") & Format(myId, "000")
'oder der folgende würde auch funktionieren
Format(myDate, "mmyy" & Format(myId, "000"))
 
Zuletzt bearbeitet:
Hallo, da bin ich mal wieder.

Ich bedanke mich erst mal für die schnellen Ratschläge die Ihr beide mir gegeben habt. Wie Ihr beide gesagt habt, habe ich die Pluszeichen mit dem kaufmännischen UND ersetzt. Leider hat dies nicht zum ersehnten Erfolg geführt.

Ich konnte aber den Code mitnehmen und hier ist er nun:

Visual Basic:
Private Sub Befehl25_Click()
On Error GoTo Err_Befehl25_Click

  Dim mySQL As String
  Dim rechnr, aktmon As String
  Dim a As Integer
  
  
    Set rs = CurrentDb.OpenRecordset("nummer") 'Öffnen die Tabelle "Nummer"
      
    If rs.[rechnungsnummer] <> "" Then
      rechnr = rs.[rechnungsnummer]
    Else
      rechnr = CStr(month(Date)) + Mid(CStr(Year(Date)), 4, 3) & "00"  'Ermittlung der Rechnungsnummer
    End If
    
    aktmon = CStr(month(Date))  'Beim neuen Monat von Anfang zählen
      
      If Len(aktmon) = 1 Then  'Wenn der aktuelle Monat einstellig ist
        aktmon = "0" + aktmon  'Eine "0" dazu addieren
      End If
      
      If aktmon <> Mid(rechnr, 1, 2) Then   'Wenn der aktuelle Monat mit ersten 2 Stellen der Rechnungsnummer ungleich ist
      rechnr = aktmon + Mid(CStr(Year(Date)), 4, 3) & "00"    'den aktuelle Monat übernehmen
      
    End If
    
    
    
    a = CInt(Mid(rechnr, 4, 3))
    a = a + 1
    rechnr = Mid(rechnr, 1, 3) + CStr(a)
    RechnungsNr.Value = rechnr
    rs.edit  'Die Rechnungsnummer in die Tabelle "Nummer" schreiben
    rs!rechnungsnummer = rechnr
    rs.Update 'Tabelle "Nummer" speichern
    rs.Close  'Tabelle "Nummer" schliessen
  
  
Exit_Befehl25_Click:
    Exit Sub
    
Err_Befehl25_Click:
    MsgBox Err.Description
End Sub

Leider fehlt mir eine Idee wo ran es liegen kann. Deswegen hoffe ich, Ihr habt eine gute Idee. Das Ziel ist es wie schon gesagt, dass die Rechnungsnummer so aussieht 0110001 . Oben steht wie es zusammengesetzt wird.

Wenn Ihr mir helfen könntet wäre ich echt froh.

Schöne Grüße aus dem verschneiten Norden
 
Hi.

An welcher Stelle tritt denn der Fehler auf? Ist die Generierung bereits fehlerhaft? Oder hat die Variable rechnr den richtigen Wert aber es steht dann nachher ein falscher Wert in der Tabelle?

Welchen Datentyp hat das Feld rechnungsnummer?

Gruß
 
Hi.

An welcher Stelle tritt denn der Fehler auf? Ist die Generierung bereits fehlerhaft? Oder hat die Variable rechnr den richtigen Wert aber es steht dann nachher ein falscher Wert in der Tabelle?

Welchen Datentyp hat das Feld rechnungsnummer?

Gruß

Der Fehler tritt auf, wenn man auf den Button Rechnungsnummer klickt. Wo genau der Fehler auftritt kann ich euch nicht sagen, da ich nicht genug Zeit hatte um es genau zu finden, aber ich denke dass es Probleme mit dem Zusammenfügen der Zahlen gibt.
Gib ich in der Tabelle die richtige Nummer ein, also 0110001, zeigt er mir nachdem ich wieder auf dem Button geklickt habe, nur 0101 an.

Leider weis ich nicht, welcher Datentyp das Feld Rechnungsnummer hat, ich denke aber, dass es Text ist.
 
Der Fehler tritt auf, wenn man auf den Button Rechnungsnummer klickt. Wo genau der Fehler auftritt kann ich euch nicht sagen, da ich nicht genug Zeit hatte um es genau zu finden, aber ich denke dass es Probleme mit dem Zusammenfügen der Zahlen gibt.
Dann setz doch einfach den Vorschlag von yaslaw um.

Gruß
 
Den Vorschlag habe ich auch schon umgesetzt. Hat leider auch nicht funktioniert, da hat er mir dann "Typ nicht richtig" angezeigt.
Ich denke mal dass sich die Typen nicht miteinander verstanden haben, aber wie gesagt, genau weis ich es nicht.

P.S. @deepthroat Glückwunsch zu deinem 5.600 Beitrag. :)
 
Zuletzt bearbeitet:
Den Code habe ich oben schon gepostet.

Die Fehlermeldung bestand aus 3 Wörtern: Typ nicht gleich. (bin mir aber nicht so sicher)
Ich denke, dass 2 der Zahlen nicht den gleichen Datentypen besitzen. Wieso, weshalb und warum es nicht funktioniert, weis ich nicht.

P.S. Bitte schön. :D
 
Zurück