Hamza Raya: ASP-Fehlermeldung

Hallo Leute

Frage: Warum funktioniert das nicht ?
----------------------------------------------------------
Function Hochkommata(Zahl)
 Zahl = Trim(Zahl)
 Zahl = FormatNumber(Zahl, 0)
 Hochkommata = Replace(Zahl, ",", "'")
End Function

For i = 5000 to 30000 step 5000
 response.write "<option value=""" & i & """>"
 i = Hochkommata(i)
 response.write i & "</option>"
Next // Das hier ist die Zeile 112
----------------------------------------------------------
Ich erhalte immer die Fehlermeldung:

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: '[string: "5'000"]'
/autokassir/suche/suche_erw.asp, line 112

Bin dankbar für alle Antworten

Gruss
Hamza (verzweifelt)

  1. Hi

    response.write "<option value=""" & i & """>"

    Warum hast Du hier 3 Anführungszeichen hintereinander??
    Hab ich so noch nie gesehen.

    MfG
    MarkX

  2. Hallo

    ich denke mal, dass das Problem in deiner Funktion zu suchen ist.
    Trim kriegt als input einen String und gibt auch einen String zurueck,
    FormatNumber braucht aber eine Zahl.
    Du solltest also dazwischen mal deinen String in eine Zahl umwandeln.

    Gruss
    Ingrid

  3. For i = 5000 to 30000 step 5000
     response.write "<option value=""" & i & """>"
     i = Hochkommata(i)
     response.write i & "</option>"
    Next // Das hier ist die Zeile 112

    Hallo Hamza,

    deine For-Next-Schleife arbeitet mit Integern, wie es sein soll.
    Allerdings ersetzt du innerhalb der Schleife deinen Zähler i gegen einen String (den du ausgibst). Beim Next versucht VB dann, einen String zu inkrementieren, was nur schiefgehen kann.

    Du solltest also deine Funktion Hochkommata() lediglich zur Ausgabe deines Strings verwenden, i dabei aber in Ruhe lassen...also:

    For i = 5000 to 30000 step 5000
     response.write "<option value=""" & i & """>"
     response.write Hochkommata(i) & "</option>"
    Next

    Grüße
    Sascha