Seite 1 von 1

VB6 (SP6) - Laufzeitfehler 13 (Formatierung CCur)

BeitragVerfasst: 23. Aug 2015, 10:32
von muhmaff
Hallo zusammen,

da VB6 weitestgehend identisch mit VBA ist, versuche ich hier mal mein Glück. :-)

Ich habe ca. 50 Textboxen welcher Daten aus einer Access-DB liest. Die Daten kommen ursprünglich aus Excel und sind mit "19.250,50" formatiert. Meine txt habe ich genauso formatiert (Format().value "##,##0.00 €")

Alle 10 txt kommt ein Summenfeld, also habe ich die Summen der txt zusammengeführt. Ich arbeite mit Index, was vieles einfacher machte.

Code: Alles auswählen
Private Sub txt_rechnung_LostFocus(Index As Integer)
    txt_rechnung(9).Text = CCur(txt_rechnung(2).Text) + CCur(txt_rechnung(3).Text) + CCur(txt_rechnung(8).Text)
End Sub


i(9) = Summe aus 2+3+8 / 23.500,50 = 500,25 + 3.000 + 20.000,25

Sofern die DB bereits Summen enthält funktioniert es. D.h. die formatierten Werte werden sowohl erkannt, als auch berechnet: z.B. Werte ändern 500,25 in 2250,75 funktioniert korrekt.

Enthält meine DB aber keine Werte (also "0") und mache einen Eintrag in einer leeren Zelle erscheint ein Laufzeitfehler der mir o.g. Code markiert.
Mit Val statt CCur werden die Werte berechnet, aber durch "."/"," falsch addiert.

Wie bekomme ich nun das richtige Ergebnis, auch, wenn noch keine Daten vorhanden sind?
Es ist der Sinn des Programms Werte an dieser Stelle einzutragen.

Gruß,
muhmaff

Re: VB6 (SP6) - Laufzeitfehler 13 (Formatierung CCur)

BeitragVerfasst: 23. Aug 2015, 11:31
von maninweb
Hallo,

für Quick and Dirty kannst Du CCur("0"& txt_rechnung(2).Text) nehmen. Besser wäre es, wenn Du z.B. die Länge des Textfelder prüfst
und/oder über eine Like Abfrage (x Like y in VBA, siehe VBA-Hilfe) noch validierst.

Gruß

Re: VB6 (SP6) - Laufzeitfehler 13 (Formatierung CCur)

BeitragVerfasst: 23. Aug 2015, 12:02
von muhmaff
Hallo maniweb,

klappt. Schön.

Da ich kein Programmierer bin, reicht mir erstmal Quick&Dirty... ;-)

Wenn ich das richtig verstehe, kommt der Fehler also, da noch "keine Werte" in den anderen txt3 + txt8 vorhanden sind.

Mir würde zwar (if) txt_rechnung(9).SelLength > 0 (then) einfallen, aber nicht wie ich das in die Addition mit einbeziehe. :doubt:

Danke jedenfalls.

Re: VB6 (SP6) - Laufzeitfehler 13 (Formatierung CCur)

BeitragVerfasst: 28. Aug 2015, 12:26
von Korsa28
für Quick and Dirty kannst Du CCur("0"& txt_rechnung(2).Text) nehmen

Re: VB6 (SP6) - Laufzeitfehler 13 (Formatierung CCur)

BeitragVerfasst: 28. Aug 2015, 13:26
von steve1da
Hola,

für Quick and Dirty kannst Du CCur("0"& txt_rechnung(2).Text) nehmen


Copy/Paste scheinst du zu beherrschen.

Gruß,
steve1da