Hallo,
ich kann zwar mittels VBA und in den Eigenschaften eines Textfeldes die maximale Anzahl der Zeichen eingeben. Damit habe ich aber das Problem, dass bei schmalen Zeichen mehr Text reinpassen würde. Ich würde es lieber auf Zeilen beschränken. Es soll keine Option zum scrollen geben und auch der Text soll sich nicht im Textfeld bewegen können, wenn mehrmals "Enter" gedrückt wird.
Gibt es dazu eine Methode um das zu realisieren?
Gruß
Hallo,
ich verstehe das gerade nicht. Wozu soll mehrmals Enter gedrückt werden?
Und was willst Du mit dem Enter erreichen/nicht erreichen?
Erzähle mal was zum Hintergrund des Vorhabens.
Ich habe in Formular ein Textfeld. Darin soll der Benutzer Text schreiben können. Jedoch ist die Größe des Textfeldes fix, d.h. es gibt nur die Fläche die sichtbar ist. Hintergrund ist, dass anschließend das Textfeld gedruckt wird und auf dem Ausdruck nicht mehr Platz gibt als vorgegeben.
Ich wollte eigentlich über die Anzahl der Zeichen das Textfeld beschränken, dass nicht mehr geschrieben werden kann. Jedoch ist bei der vorgegebenen Schriftart ein "i" schmaler als ein "z", so dass ich mehr von den "i"'s schreiben kann als von den "z"'s. Daraus folgt, dass wenn der Text "schmaler" ist mehr Platz zum schreiben zu Verfügung steht.
Ich möchte dem Nutzer die Option geben, dass er auf drei Zeilen etwas schreiben kann, aber eben nicht mehr.
Gruß
Hallo,
ZitatIch möchte dem Nutzer die Option geben, dass er auf drei Zeilen etwas schreiben kann, aber eben nicht mehr.
und was bringt Dir das?
Die Zeilen können ja auch unterschiedlich lang sein.
WWWWWWWWWW
kkkkkkkkkk
iiiiiiiiii
Das sind 3 Zeilen mit zusammen 30 Zeichen.
Du kannst in einem Feld auch die Zeilenschaltungen zählen. Das ist Chr(13).
Kannst Du nicht einfach ein nichtproportionalen Zeichensatz einstellen, dann kannst Du Zeichen zählen.
Hallo,
das mit dem Zeichensatz wollte ich ursprünglich machen, geht jedoch wegen CorpID nicht.
Und genau das ist das Thema wie du es mir darstellst. Deswegen klappt es mit dem Zeichenanzahl nicht.
Werde es dann mit dem Zählen von Chr(13) machen.
Danke dir.
Gruß
Hallo!
Hab da in einem anderen Beitrag so was gemacht mit der Hilfe von Deaolix
Gruß Frank
http://www.access-o-mania.de/forum/index.php?topic=15825.msg91647#msg91647 (http://www.access-o-mania.de/forum/index.php?topic=15825.msg91647#msg91647)
Public Function UmbruchRaus(ByVal MemoRein As String)
Dim Position As Integer
If Left$(MemoRein, 2) = vbCrLf Then MemoRein = Mid$(MemoRein, 3)
Do While InStr(MemoRein, vbCrLf & vbCrLf) <> 0 'Umbruch da
Position = InStr(MemoRein, vbCrLf & vbCrLf)
MemoRein = Left$(MemoRein, Position - 1) + Mid$(MemoRein, Position + 2)
Loop
UmbruchRaus = MemoRein
End Function
Private Sub TxtBewerbungBetreff_Change()
Dim str As String
Dim Msg As String
Dim sf() As String
Dim TextArray As Variant
Dim Index As Integer
Dim vntTextArray As Variant
Dim intIndex As Integer
str = Me!TxtBewerbungBetreff.Text
str = UmbruchRaus(str)
' Zeilenumbruch bei Eingabe
TextArray = Split(str, vbCrLf)
For Index = 0 To UBound(TextArray)
If Len(TextArray(Index)) > 79 Then
vntTextArray = Split(str, vbCrLf)
For intIndex = 0 To UBound(vntTextArray)
If Len(vntTextArray(intIndex)) > 79 Then _
vntTextArray(intIndex) = Left$(vntTextArray(intIndex), 79) & _
vbCrLf & Mid$(vntTextArray(intIndex), 80)
Next intIndex
Me!TxtBewerbungBetreff = Join(vntTextArray, vbCrLf)
Me!TxtBewerbungBetreff.SelStart = Len(Me!TxtBewerbungBetreff.Text)
End If
Next Index
' Maximale länge festlegen
If Len(str) > 241 Then
Msg = " Der Text darf nur 241 Zeichen lang sein" & vbCr & "und wurde deshalb auf diese länge gekürzt!"
MsgBox Msg, vbInformation Or vbOKOnly, "Nicht zulässig!"
Me!TxtBewerbungBetreff.Text = Left(str, 241)
Me!TxtBewerbungBetreff.SelStart = Len(Me!TxtBewerbungBetreff.Text)
End If
'Maximale Zeilenumbrüche festlegen
If Len(str) > 0 Then
sf() = Split(str, vbCrLf)
If UBound(sf()) > 2 Then
Msg = "Es dürfen für den betreff maximal 3 Zeilen verwendet werden"
MsgBox Msg, vbInformation Or vbOKOnly, "Nicht zulässig!"
ReDim Preserve sf(2)
Me!TxtBewerbungBetreff = Join(sf(), vbCrLf)
Me!TxtBewerbungBetreff.SelStart = Len(Me!TxtBewerbungBetreff.Text)
End If
End If
End Sub