VBS -> Wie einen Wert erhöhen, der in eine csv-Datei geschrieben wird?

In einem Skript schreibe ich Daten aus einer Datenbank in eine csv-Datei

ts.Write             rs.Fields(„price“) & vbTab

Das klappt soweit. Die Ergänzung soll jetzt sein, daß ich einen Mindestwert setze. Das heißt in der Datenbank steht meinetwegen 0,01 und ich möchte, daß in der csv-Datei daraus mindestens 3,00 wird.

Wer hat eine Idee? :smile:

Hallo Joerg,

ungetestet, da ich mit VBS lange nichts mehr gemacht habe:

ts.Write max(rs.Fields(„price“), 3) & vbTab

und zusätzlich eine Funktion max definieren:

Function max (a, b)
max = a
If b > a Then max = b
End Function

Gruß, Andreas

Hallo Andreas,

ich bekomme es partout nicht zum Laufen.

Ich habe die Funktion oberhalb der anderen Zeile gesetzt, aber bei der Ausführung gibt es sofort ein Problem mit der ersten Zeile im Funktionsblock. Irgendeine Idee?

Hi Jörg,

was heißt „ein Problem“? Fehlermeldung?

Ob die Funktion vor oder hinter dem Rest des Codes steht, ist m.M.n. egal.

Was steht denn in diesem rs.Fields(„price“) genau drin? Ist das eine Zahl? Ein Text, der eine Zahl darstellt?

Lass dir mal mit MsgBox den Wert von rs.Fields(„price“) vor dem Aufruf von max anzeigen und dann in der Funktion max. Ist da ein Unterschied?

Gruß, Andreas

Hallo Andreas,

das Tool, welches ich verwende, sagt „Syntaxfehler“ in Function max (a, b).

Ich verwende ein recht seltenes Access-Werkzeug.

In „price“ wird immer eine Währungszahl weitergegeben.

Die Anregung mit MsgBox habe ich leider nicht verstanden …

Hallo Andreas,

Hi Jörg,

das Tool, welches ich verwende, sagt „Syntaxfehler“ in
Function max (a, b).

Syntaxfehler wundert mich. Bei mir läuft die Funktion problemlos.

Ich verwende ein recht seltenes Access-Werkzeug.

In „price“ wird immer eine Währungszahl weitergegeben.

Das gibt dann vermitlich Probleme in der Funktion:
Zahlen mit angehängten Währungszeichen sind Text. Den kann man natürlich nicht mit Zahlen auf Maximum vergleichen.

Die Anregung mit MsgBox habe ich leider nicht verstanden …

Damit solltest du überprüfen, ob der Wert, der an die Funktion übergeben wird vor und nach der Übergabe gleich ist. Ich glaube aber, das hat sich erledigt. Das Problem ist vermutlich das Währungszeichen. Ich weiß noch nicht, wie man das wegbekommt. Muss ich erst ein bisschen testen.

Gruß, Andreas

Sorry, verlesen
'tschuldigung. Ich glaub, ich sollte mal lesen üben. Währungs zahl ist natürlich Währungs zeichen.
Also, wenn da wirklich nur Zahlen drin stehen, weiß ich noch nicht, was da falsch läuft.

Vielleicht kannst du doch mal den Versuch mit der MsgBox machen und dir den Variablen-Inhalt vor und nach der Übergabe an die max-Funktion anschauen.

Und warum da in der Funktion ein Syntaxfehler sein soll, ist mir noch völlig schleierhaft.

Sorry für die unzuereichende Hilfe. Wenn mir noch was dazu einfällt, melde ich mich wieder.

Gruß, Andreas