ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
394
394
EMPFEHLEN
-
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
-
08.01.10 09:15 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
GrußCode vb:1
Mid(CStr(Year(Date)), 3, 4) & "00"
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
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
-
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
-
13.01.10 13:54 #5
- 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.
-
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.
-
13.01.10 15:26 #7
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
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)
-
13.01.10 18:19 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
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.
-
14.01.10 08:52 #11
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
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
-
[Joomla 1.5] style="xhtml" statt "table" wird ignoriert
Von Schlafor im Forum Content Management Systeme (CMS)Antworten: 9Letzter Beitrag: 13.08.10, 15:44 -
"Eager" statt "Lazy" bei Java Remote Object Activation
Von -ben- im Forum JavaAntworten: 3Letzter Beitrag: 15.04.09, 14:42 -
Hibernate: "Calendar" statt "Date" auf SQL TIMESTAMP mappen?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 09.05.08, 00:07 -
POST Array[a2] mit "registry globals = off" behandelt?
Von -GS-Master im Forum PHPAntworten: 5Letzter Beitrag: 03.04.07, 20:16 -
"Geschäftsleitung" statt "Geschäftsführer" auf Visi bei mehr als einem Geschäftsfüher
Von shithead im Forum Creative LoungeAntworten: 4Letzter Beitrag: 09.11.04, 23:38





Zitieren


Login





