bedingte Absätze in vba einfügen
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 schreiben
Antwort 1 von erik vom 17.08.2019, 16:32 Options
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 vom 17.08.2019, 16:52 Options
danke für den tipp. werds ausprobieren.