Announcement

Collapse
No announcement yet.

Enter-Taste ausschalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Enter-Taste ausschalten

    Hallo Andreas!<BR>In meinem Prog speichere ich Datensätze in einer Access Datenbank. <BR>Später lese ich diese Daten in eine Excel Vorlage per Button Click. Dabei wird ein Datensatz in ein Datenfeld geschrieben.<BR> Wenn bei der Dateneingabe ein Return gesetzt wird, wird beim auslesen in das Excel-Datenfeld ein Zeilenumbruch gesetzt. <BR>Wie kann ich beim speichern der Daten verhindern das das Return mit gespeichert wird?<BR>Hoffentlich kannst du mir helfen!<BR>Liebe Grüße Tatjana!!!!

  • #2
    Hallo Tatjana,

    das TextBox-Control kann das <b>KeyPress</b>-Ereignis auswerten, um bei einem vorgefundenen Return-Zeichen die Eingabe zu entwerten, indem die Eigenschaft <b>Handled</b> auf True gesetzt wird:
    <pre>
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then
    If Me.ActiveControl Is Me.TextBox1 Then
    e.Handled = True
    End If
    End If
    End Sub
    </pre&gt

    Comment


    • #3
      Hallo Tatjana,<BR>

      der Vorschlag von Andreas funktioniert natürlich bestens, hat aber den Nachteil, daß der Anwender nun gar keine Chance mehr hat, Absätze zu bilden. <BR> In einem ähnlichen Fall hab ich mich mit einem zweiten String-Feld in der Datenbank beholfen (für die Übergabe an Excel) und dieses mit einer unsichtbaren zweiten Textbox in der Form verbunden und wie folgt gefüllt:<BR>

      <PRE>
      Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
      Dim MyText1, MyText2 As String
      Dim CRLF As String = Chr(13) + Chr(10)
      Dim i, x As Integer
      MyText1 = Me.TextBox1.Text
      i = 1
      'Alle CRLF (Carriage Return/Linefeed) gegen Blank austauschen
      Do While i < MyText1.Length - 1
      x = InStr(i, MyText1, CRLF)
      MyText2 = MyText2 + Mid(MyText1, i, x - i) + " "
      i = x + 2
      Loop
      'Ergebnis (ohne abschließendes Blank!) an unsichtbare zweite Textbox übergeben
      Me.TextBox2.Text = Trim(MyText2)
      End Sub
      </PRE>

      Nicht sehr elegant, aber es funktioniert;-)<BR> Vorteil: Innerhalb Deiner Anwendung findet der User bei erneutem Aufruf seine Formatierung mit Absätzen wieder und in Excel gibts trotzdem keine Probleme.<BR>

      Gruß,<BR>
      Ola

      Comment

      Working...
      X