Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: ReAcc am September 15, 2022, 13:39:45

Titel: Rechtschreibprüfung nur in aktuellem Textfeld durchführen
Beitrag von: ReAcc am September 15, 2022, 13:39:45
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
Titel: Re: Rechtschreibprüfung nur in aktuellem Textfeld durchführen
Beitrag von: ReAcc am September 15, 2022, 16:30:35
...wahrscheinlich keine große Sache, aber leider bin ich ein absoluter VBA-Neuling....
Titel: Re: Rechtschreibprüfung nur in aktuellem Textfeld durchführen
Beitrag von: markusxy am September 16, 2022, 08:00:23
Dieses Beispiel (https://www.ms-office-forum.net/forum/showpost.php?p=1693553&postcount=3) habe ich  gefunden. Der Text muss also vorerst markiert werden.
Titel: Re: Rechtschreibprüfung nur in aktuellem Textfeld durchführen
Beitrag von: ReAcc am September 19, 2022, 11:23:44
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
Titel: Re: Rechtschreibprüfung nur in aktuellem Textfeld durchführen
Beitrag von: markusxy am September 19, 2022, 13:04:32
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.