tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
394
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sf90 sf90 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    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 :
    1
    
    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
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Code vb:
    1
    
    Mid(CStr(Year(Date)), 3, 4) & "00"
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Alles Haferkäse.
    format() ist der Befehl den du verwenden willst. Und wie von deepthroat angedeutet das & anstelle vom +

    Code vb:
    1
    2
    3
    
    Format(myDate, "mmyy") & Format(myId, "000")
    'oder der folgende würde auch funktionieren
    Format(myDate, "mmyy" & Format(myId, "000"))
    Geändert von Yaslaw (08.01.10 um 10:55 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    sf90 sf90 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    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:

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    
    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
     

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    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ß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  6. #6
    sf90 sf90 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    Zitat Zitat von deepthroat Beitrag anzeigen
    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.
     

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von sf90 Beitrag anzeigen
    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ß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #8
    sf90 sf90 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    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.
    Geändert von sf90 (13.01.10 um 15:51 Uhr)
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von sf90 Beitrag anzeigen
    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.
    Dann poste den Code und die genau Fehlermeldung.
    Zitat Zitat von sf90 Beitrag anzeigen
    P.S. @deepthroat Glückwunsch zu deinem 5.600 Beitrag.
    Danke

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  10. #10
    sf90 sf90 ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    5
    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.
     

  11. #11
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von sf90 Beitrag anzeigen
    Den Code habe ich oben schon gepostet.
    Ich sehe da kein Format drin.
    Zitat Zitat von sf90 Beitrag anzeigen
    Die Fehlermeldung bestand aus 3 Wörtern: Typ nicht gleich. (bin mir aber nicht so sicher)
    Dann finde es heraus und zeig den Code + Fehlermeldung und in welcher Zeile der Fehler auftritt.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  12. #12
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    debuggen....
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. [Joomla 1.5] style="xhtml" statt "table" wird ignoriert
    Von Schlafor im Forum Content Management Systeme (CMS)
    Antworten: 9
    Letzter Beitrag: 13.08.10, 15:44
  2. Antworten: 3
    Letzter Beitrag: 15.04.09, 14:42
  3. Hibernate: "Calendar" statt "Date" auf SQL TIMESTAMP mappen?
    Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 09.05.08, 00:07
  4. Antworten: 5
    Letzter Beitrag: 03.04.07, 20:16
  5. Antworten: 4
    Letzter Beitrag: 09.11.04, 23:38