PDA

Vollständige Version anzeigen : textfeld dynamischer inhalt


jimmyheinz
23.03.2006, 22:56
Hallo

Folgende Ausgangssituation, ich habe einen Bericht in dem in einem Feld der Name einer Infusion steht, in diesem bericht sind auch DS mit Medis für die Infusion die immer mit einem + beginnen und dannnach einem leerzeichen der Name kommt. getrennt werden die DS im durch eine Linie. Nun möchte ich gerne, das bei den DS die mit + anfangen die Linie nicht angezeigt werden.

Was muß ich dafür beim drucken tippen???

Arne Dieckmann
23.03.2006, 23:19
Wenn ich es richtig deute, verwende folgende Anweisung beim Ereignis "Beim Formatieren" des Bereichs, in dem Textfeld "MeinTextfeld" und Linie "Linie1" liegen:

Me!Linie1.Visible=Left(Nz(Me!MeinTextfeld," "),1)<>"+"

Nouba
23.03.2006, 23:23
Mit einer Aktualisierungsabfrage sollte man eine Lösung finden.
UPDATE TABELLENNAME AS T
SET T.FELDNAME = "+ " & Mid(T.FELDNAME, 3)
WHERE T.FELDNAME LIKE "+-*";

PS: vermutlich ist aber Arnes Vorschlag gediehener - meine Variante würde hingegen Daten verändern.

elmar
23.03.2006, 23:27
Arnes Lösung ist noch einfacher als meine mit InStr. Daher ursprüngliche Lösung gelöscht.

jimmyheinz
23.03.2006, 23:34
Danke für die schnellen Antworten, werde es morgen probieren.

jimmyheinz
24.03.2006, 21:15
HAllo Arne

dein code klappt wunderbar, vielen dank, könntest du mir vielleicht die einzelnen funktionen der elelmente im code erklären, für mich zum verständnis.

vielen dank

jimmy

Nouba
24.03.2006, 22:06
Da Arne zur Zeit nicht Online zu sein scheint und ich annehme, den Kode auch zu verstehen, versuche ich eine Erklärung abzugeben.

Der Ausdruck <tt>Left(Nz(Me!MeinTextfeld,&nbsp;"&nbsp;"),&nbsp;1)&nbsp;<>&nbsp;"+"</tt> liefert als Ergebnis einen Wahrheitswert: <tt>Wahr/True</tt> oder <tt>Falsch/False</tt>. Je nach Ergebnis wird damit die Linie für jeden Datensatz sichtbar oder unsichtbar geschaltet.

Der innere Abschnitt <tt>Nz(Me!MeinTextfeld, " ")</tt> gibt entweder den kompletten Text des Steuerelements oder genau ein <tt>" "</tt> (Leerzeichen), wenn <tt>Me!MeinTextfeld</tt> Null (leer) ist, zurück. Die VBA-Funktion <tt>Left</tt> erlaubt es, von einer Zeichenkette soviel Zeichen von links betrachtet zu erhalten, wie es im 2. Argument angegeben wird. Arnes Funktion betrachtet also das erste Zeichen von links und vergleicht es mit <tt>"+"</tt>. Wenn das Zeich auch ein <tt>"+"</tt> ist ergibt die Aussage <tt>"+"&nbsp;<>&nbsp;"+"</tt> Falsch (Resultat: die Linie wird ausgeblendet).

jimmyheinz
26.03.2006, 13:34
Super Vielen dank