Automatischer Zeilenumbruch

28/08/2010 - 11:45 von Winfried Sonntag | Report spam
Hallo zusammen,

Josef Pötzl hatte in
http://groups.google.com/group/micr...dae76300f9
Code gepostet, mit dem Text automatisch umgebrochen wird. Die Vorlage
konnte ich auf meine Belange anpassen und ist wie folgt im Einsatz:

Dim strString As String, intPos As Integer, intAnz As Integer
Dim strAlt As String, strNeu As String

If Len(Me!txtZusatztext.Text) = 94 Then
strString = Me!txtZusatztext.Text
intAnz = Len(Me!txtZusatztext.Text)
intPos = InStrRev(strString, " ", -1, vbTextCompare)
strAlt = Left(strString, intPos - 1)
Me!txtZusatztext.Text = strAlt
SendKeys "{ENTER}", True
strNeu = Right(strString, intAnz - intPos)
Me!txtZusatztext.Text = strNeu
End if

Funktioniert auch wunderbar. ;) Allerdings kam gleich danach das
nàchste Problem auf, ergànzt der Benutzer im ersten Drittel der Zeile
Text, wird an der Stelle umgebrochen, wo der Cursor gerade steht.
Meine Versuche mit SelStart sind bisher klàglich gescheitert. Gibt es
eine Möglichkeit den Text am Ende umbrechen zu lassen, aber trotzdem
dem Cursor an der Eingabestelle zu belassen?

Hintergrund zur Tabelle. Bei Rechnungen können Zusatztexte eingegeben
werden. Die Tabelle hat einen Autowert als PK, ein Textfeld mit 95
Zeichen und ein weiteres Feld mit der Rechnungsnummer als Long
Integer.

ID Zusatztext AuftragsID
32 Sommer-/Winterreifen gewechselt. 2
35 Fahrzeug beim TÜV vorgestellt und zugelassen. 5

Vielen Dank schon im voraus.

Servus
Winfried
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
Access-FAQ: http://www.donkarl.com/AccessFAQ.htm
Access-Stammtisch: http://www.access-muenchen.de
 

Lesen sie die antworten

#1 Ekkehard Böhme
29/08/2010 - 18:03 | Warnen spam
Hallo Winfried,

"Winfried Sonntag" schrieb im Newsbeitrag
news:1fvymptpkk5kt$
Hallo zusammen,

Josef Pötzl hatte in
http://groups.google.com/group/micr...dae76300f9
Code gepostet, mit dem Text automatisch umgebrochen wird. Die Vorlage
konnte ich auf meine Belange anpassen und ist wie folgt im Einsatz:

Dim strString As String, intPos As Integer, intAnz As Integer
Dim strAlt As String, strNeu As String


Hast Du versucht SelStart zwischenzuspeichern?
Also
Dim intSelStart As Integer
intSetStart = Me!txtZusatztext.Selstart


If Len(Me!txtZusatztext.Text) = 94 Then



Müsste es nicht ">" heissen?
So wird der Text ja nur umgebrochen wenn er genau! 94 Zeichen lang ist.
Oder ist das so gewollt?

strString = Me!txtZusatztext.Text
intAnz = Len(Me!txtZusatztext.Text)
intPos = InStrRev(strString, " ", -1, vbTextCompare)
strAlt = Left(strString, intPos - 1)
Me!txtZusatztext.Text = strAlt
SendKeys "{ENTER}", True
strNeu = Right(strString, intAnz - intPos)



Unbestàtigten Gerüchte zufolge ist SENDKEYS 1. schon immer Pfui und 2. seit
A2007 nicht mehr vorhanden ;-)
Ich würde es so neu zusammen setzen:
strAlt = Left(strString, intPos - 1)
strNeu = Right(strString, intAnz - intPos)
strNeu = strAlt & vbcrlf & strNeu

Me!txtZusatztext.Text = strNeu



Und hier dann noch
Me!txtZusatztext.SelStart = intSelStart
Evtl. musst da noch eine Stelle zugeben oder abziehen (hab' ich jetzt nicht
nachgerechnet).

End if

Funktioniert auch wunderbar. ;) Allerdings kam gleich danach das
nàchste Problem auf, ergànzt der Benutzer im ersten Drittel der Zeile
Text, wird an der Stelle umgebrochen, wo der Cursor gerade steht.
Meine Versuche mit SelStart sind bisher klàglich gescheitert. Gibt es
eine Möglichkeit den Text am Ende umbrechen zu lassen, aber trotzdem
dem Cursor an der Eingabestelle zu belassen?

Hintergrund zur Tabelle. Bei Rechnungen können Zusatztexte eingegeben
werden. Die Tabelle hat einen Autowert als PK, ein Textfeld mit 95
Zeichen und ein weiteres Feld mit der Rechnungsnummer als Long
Integer.

ID Zusatztext AuftragsID
32 Sommer-/Winterreifen gewechselt. 2
35 Fahrzeug beim TÜV vorgestellt und zugelassen. 5

Vielen Dank schon im voraus.

Servus
Winfried



gruss ekkehard

Ähnliche fragen