Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Textfeld Anzahl Zeilen beschränken

Begonnen von dmaccs, Juli 01, 2012, 19:13:40

⏪ vorheriges - nächstes ⏩

dmaccs

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ß

MzKlMu

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.
Gruß Klaus

dmaccs

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ß

MzKlMu

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.
Gruß Klaus

dmaccs

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ß

Frank77

#5
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

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
Selbstständig = Selbst und Ständig