Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Rechtschreibprüfung nur in aktuellem Textfeld durchführen

Begonnen von ReAcc, September 15, 2022, 13:39:45

⏪ vorheriges - nächstes ⏩

ReAcc

Hallo,

ich möchte nach Änderung eines bestimmten Textfeldes in einem Formular automatisch die Rechtschreibprüfung starten. Diese soll aber nur auf dieses Textfeld und nur in dem aktuellen DS angewendet werden. Hatte es zunächst mit dem Menübefehl "Rechtschreiborüfung" in einem Makro versucht, dann durchläuft die Prüfung aber alle Felder und DS in meinem Formular.

Hat vielleicht jemand von Euch eine Idee oder einen Tipp, wie ich das mit VBA lösen kann? Vielen Dank!

Ich habe es (erfolglos :o ) hiermit probiert:

Private Sub Text48_AfterUpdate()
On Error Resume Next
Me!DoCmd.RunCommand acCmdSpelling
End Sub

Danke und Gruß,
Rene

ReAcc

#1
...wahrscheinlich keine große Sache, aber leider bin ich ein absoluter VBA-Neuling....

markusxy

Dieses Beispiel habe ich  gefunden. Der Text muss also vorerst markiert werden.

ReAcc

Hallo Jan,

vielen Dank!

Ich hatte in der Zwischenzeit noch diesen Code gefunden, mit dem es auch gut funktioniert (allerdings auch nur über einen Schalter):

Private Sub Befehl132_Click()
Dim ctlSpell As Control

  Set ctlSpell = Screen.PreviousControl
  If TypeOf ctlSpell Is TextBox Then
    If IsNull(Len(ctlSpell)) Or Len(ctlSpell) = 0 Then
      MsgBox "There is nothing to spell check."
      ctlSpell.SetFocus
      Exit Sub
    End If
    With ctlSpell
      .SetFocus
      .SelStart = 0
      .SelLength = Len(ctlSpell)
    End With
    DoCmd.RunCommand acCmdSpelling
  Else
    MsgBox "Spell check is not available for this item."
  End If
  ctlSpell.SetFocus
End Sub

markusxy

Zitat von: ReAcc am September 19, 2022, 11:23:44allerdings auch nur über einen Schalter

Na ja, ohne Schalter wird auch etwas anspruchsvoller.
Copy & Paste genügt da nicht mehr, da es eine Reihe von Faktoren zu berücksichtigen gibt.