Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

bedingte Absätze in vba einfügen





Frage

hi ich habe ein textfeld, dass den column-inhalte eines kombifeldes ausliest. jeder inhaltspunkt soll in dem textfeld untereinander erscheinen. also: PunktA PunktB Punkt C etc. ich habe es mit vba so realisiert: Text = [Kombinationsfeld23].Column(1) & vbNewLine & [Kombinationsfeld23].Column(2) & vbNewLine & [Kombinationsfeld23].Column(3) Me.Text.Requery Das funktioniert auch soweit. Nur tritt folgendes Problem auf. Wenn z.B die 2. Column des Kombifeldes nichts beinhaltet produziert mir mein textfeld dies: Punkt A PunktC Er macht also da wo PunktB wäre ein Absatz, obwohl der nicht nötig wäre. WIE BEKOMME ICH ES HIN,DASS ER NUR DANN EINEN ABSATZ MACHT,WENN ICH IN COLUMN2 INHALT HABE? Also, dass es im oben genannten Fall so aussieht: PunktA PunktC schonmal danke gruß

Antwort 1 von erik

Hallo!

Wenn die leeren Columns NULL als Wert zurückgeben, dann kann das dank des Plus-Operators recht einfach gelöst werden:

Text=(Wert1 + vbNewLine) & (Wert2 + vbNewLine) & (Wert3 + vbNewLine)


Wenn bei einer Zeichenfolgenverkettung zwischen Wert1 und vbNewLine mindestens ein Element NULL ist (hier: Wert1), dann ist dank des Plus-Operators der gesamte Ausdruck NULL.
Das kaufmännische Und dagegen sorgt dafür, dass die übrig gebliebenen Elemente doch noch verkettet werden.

Ein Problem kann hier auftreten, wenn einer der Werte eine reine Ziffer ist. Dann versucht Access statt der Zeichenverkettung eine Addition. Dann müsste eine String-Konvertierung CStr(Ziffer) bereits ausreichen.

Gruß
erik

Antwort 2 von mbalrog

danke für den tipp. werds ausprobieren.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: